First stab
This commit is contained in:
parent
2daffc8694
commit
c6b841de6c
12
abra
12
abra
@ -842,6 +842,18 @@ sub_volume() {
|
|||||||
docker volume $@
|
docker volume $@
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#######################################
|
||||||
|
# Bash completion helpers
|
||||||
|
#######################################
|
||||||
|
|
||||||
|
sub_command_ls() {
|
||||||
|
docopt_exit 2>&1 | \
|
||||||
|
tail -n+2 | \
|
||||||
|
sed -s -e 's/^\s\+//g' -e 's/(\([^)]*\)|.*)/\1/' -e 's/\[options\]//g' \
|
||||||
|
-e 's/ <[^>]\+>//g' -e 's/\.\.\.//g' -e 's/^abra\s*//' -e '/^$/d' | \
|
||||||
|
sort -u
|
||||||
|
}
|
||||||
|
|
||||||
#######################################
|
#######################################
|
||||||
# Main
|
# Main
|
||||||
#######################################
|
#######################################
|
||||||
|
37
completion.bash
Normal file
37
completion.bash
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
#!/env bash
|
||||||
|
|
||||||
|
#/usr/bin/env bash
|
||||||
|
_abra_completions()
|
||||||
|
{
|
||||||
|
local CUR PREV COMMANDS_LIST COMMANDS
|
||||||
|
|
||||||
|
CUR=${COMP_WORDS[COMP_CWORD]}
|
||||||
|
PREV=${COMP_WORDS[COMP_CWORD-1]}
|
||||||
|
|
||||||
|
mapfile -t COMMANDS_LIST < <(abra command_ls)
|
||||||
|
echo "${COMMANDS_LIST[@]}"
|
||||||
|
|
||||||
|
case ${COMP_CWORD} in
|
||||||
|
1)
|
||||||
|
COMPREPLY=($(compgen -W "${COMMANDS_LIST[*]%% *}" -- ${CUR}))
|
||||||
|
;;
|
||||||
|
2)
|
||||||
|
SUB_COMMANDS=()
|
||||||
|
for COMMAND in "${COMMANDS_LIST[@]}"; do
|
||||||
|
echo $PREV
|
||||||
|
if [[ COMMAND =~ $PREV ]]; then
|
||||||
|
echo "FOUND $PREV $COMMAND"
|
||||||
|
SUB_COMMANDS+=("$COMMAND")
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
COMPREPLY=($(compgen -W "${COMMANDS[*]#* }" -- ${CUR}))
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo $COMP_CWORD
|
||||||
|
COMPREPLY=()
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
complete -F _abra_completions abra
|
Reference in New Issue
Block a user