diff --git a/src/usr/doc/contrib/sbopkg.bash b/src/usr/doc/contrib/sbopkg.bash index 4b6b64c..8ec81ca 100644 --- a/src/usr/doc/contrib/sbopkg.bash +++ b/src/usr/doc/contrib/sbopkg.bash @@ -65,10 +65,20 @@ _sbopkg() esac done - if [ ! -r "$REPO_ROOT/$REPO_NAME/$REPO_BRANCH/SLACKBUILDS.TXT" ]; then - return 0 + if [ -d "$QUEUEDIR" ]; then + local queues=($(cd $QUEUEDIR; compgen -f -X "!*.sqf" -- "$cur")) + fi + + if [ -r "$REPO_ROOT/$REPO_NAME/$REPO_BRANCH/SLACKBUILDS.TXT" ]; then + COMPREPLY=($(sed -ne "/^SLACKBUILD NAME: $cur/{s/^SLACKBUILD NAME: //;p}" \ + $REPO_ROOT/$REPO_NAME/$REPO_BRANCH/SLACKBUILDS.TXT) + ${queues[@]}) + elif [ -d "$REPO_ROOT/$REPO_NAME/" ]; then + COMPREPLY=($(find $REPO_ROOT/$REPO_NAME \ + \! -path $REPO_ROOT/$REPO_NAME/'.git/*' \ + -mindepth 2 -maxdepth 2 \ + -type d -name $cur\* \ + -printf '%f\n') + ${queues[@]}) fi - COMPREPLY=( $( sed -ne "/^SLACKBUILD NAME: $cur/{s/^SLACKBUILD NAME: //;p}"\ - $REPO_ROOT/$REPO_NAME/$REPO_BRANCH/SLACKBUILDS.TXT ) - $( cd $QUEUEDIR; compgen -f -X "!*.sqf" -- "$cur" ) ) } && complete -o filenames -F _sbopkg sbopkg