mirror of
https://github.com/dokku/dokku.git
synced 2025-12-16 20:17:44 +01:00
40 lines
1.1 KiB
Plaintext
40 lines
1.1 KiB
Plaintext
|
|
#!/usr/bin/env bash
|
||
|
|
|
||
|
|
_dokku_complete_goals_fetch() {
|
||
|
|
dokku --quiet help --all | awk '/^ /{ print $1 }' | sort > "/var/cache/dokku-completion"
|
||
|
|
}
|
||
|
|
|
||
|
|
_dokku_complete_verify() {
|
||
|
|
declare desc="shows bash completion"
|
||
|
|
declare COMMAND="$1"
|
||
|
|
local COMMANDS=""
|
||
|
|
|
||
|
|
if [[ ! -f "/var/cache/dokku-completion" ]] || [[ -s "/var/cache/dokku-completion" ]]; then
|
||
|
|
_dokku_complete_goals_fetch
|
||
|
|
fi
|
||
|
|
|
||
|
|
_dokku_complete_goals=$(cat "/var/cache/dokku-completion")
|
||
|
|
|
||
|
|
while read -r fn; do
|
||
|
|
if [[ -z "$COMMAND" ]] || [[ "$fn" == $COMMAND* ]]; then
|
||
|
|
COMMANDS="${COMMANDS};${fn}"
|
||
|
|
fi
|
||
|
|
done <<< "$_dokku_complete_goals"
|
||
|
|
|
||
|
|
echo "${COMMANDS#";"}"
|
||
|
|
}
|
||
|
|
|
||
|
|
have dokku &&
|
||
|
|
_dokku_complete() {
|
||
|
|
local cur prev
|
||
|
|
_get_comp_words_by_ref -n : cur
|
||
|
|
opts=$(_dokku_complete_verify "${cur}")
|
||
|
|
COMPREPLY=($(IFS=";" compgen -W "$opts" -- "$cur"))
|
||
|
|
__ltrim_colon_completions "$cur"
|
||
|
|
} &&
|
||
|
|
complete -F _dokku_complete dokku
|
||
|
|
|
||
|
|
if [[ ! -f "/var/cache/dokku-completion" ]] || [[ -s "/var/cache/dokku-completion" ]]; then
|
||
|
|
have dokku && export -f _dokku_complete_goals_fetch && nohup bash -c _dokku_complete_goals_fetch >/dev/null 2>&1 &
|
||
|
|
fi
|