parent
57e3a34133
commit
543072ab37
52
completion/_abra
Normal file
52
completion/_abra
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
#compdef abra
|
||||||
|
|
||||||
|
_abra () {
|
||||||
|
local context state line curcontext="$curcontext" ret=1
|
||||||
|
_arguments -n : \
|
||||||
|
{-h,--help}'[Help message]' \
|
||||||
|
'1:commands:(app server)' \
|
||||||
|
'*::arguments:->arguments' \
|
||||||
|
&& ret=0
|
||||||
|
|
||||||
|
case $state in
|
||||||
|
(arguments)
|
||||||
|
curcontext="${curcontext%:*:*}:abra-arguments-$words[1]:"
|
||||||
|
case $words[1] in
|
||||||
|
(app)
|
||||||
|
_arguments \
|
||||||
|
'1: :_abra_apps' \
|
||||||
|
&& ret=0
|
||||||
|
;;
|
||||||
|
(server)
|
||||||
|
_arguments \
|
||||||
|
'1:servers:_abra_servers' \
|
||||||
|
&& ret=0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
return ret
|
||||||
|
}
|
||||||
|
|
||||||
|
_abra_servers() {
|
||||||
|
_path_files -/W $HOME/.abra/servers
|
||||||
|
}
|
||||||
|
|
||||||
|
_abra_apps()
|
||||||
|
{
|
||||||
|
local newapps apps=($HOME/.abra/servers/*/*.env)
|
||||||
|
typeset -a apps
|
||||||
|
newapps=()
|
||||||
|
for app in $apps; do
|
||||||
|
newapps+=($(_abra_basename "${app}"))
|
||||||
|
done
|
||||||
|
_describe -t apps 'app' newapps
|
||||||
|
}
|
||||||
|
|
||||||
|
_abra_basename()
|
||||||
|
{
|
||||||
|
printf -- "${1##*/}"
|
||||||
|
}
|
||||||
|
|
||||||
|
_abra "$@"
|
@ -40,13 +40,8 @@ _abra_complete_apps()
|
|||||||
|
|
||||||
_abra_complete()
|
_abra_complete()
|
||||||
{
|
{
|
||||||
# https://github.com/andsens/homeshick/blob/master/completions/homeshick-completion.bash
|
compopt +o default +o nospace
|
||||||
if $_ABRA_HAS_COMPOPT; then
|
COMPREPLY=()
|
||||||
compopt +o default +o nospace
|
|
||||||
COMPREPLY=()
|
|
||||||
else
|
|
||||||
COMPREPLY=('')
|
|
||||||
fi
|
|
||||||
|
|
||||||
local -r cmds='
|
local -r cmds='
|
||||||
app
|
app
|
||||||
@ -119,11 +114,4 @@ _abra_complete()
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# https://github.com/andsens/homeshick/blob/master/completions/homeshick-completion.bash
|
|
||||||
if type compopt &>/dev/null; then
|
|
||||||
_ABRA_HAS_COMPOPT=true
|
|
||||||
else
|
|
||||||
_ABRA_HAS_COMPOPT=false
|
|
||||||
fi
|
|
||||||
|
|
||||||
complete -o default -F _abra_complete abra
|
complete -o default -F _abra_complete abra
|
Loading…
Reference in New Issue
Block a user