add dotter local completions

This commit is contained in:
Penelope Gwen 2026-03-20 11:59:50 -07:00
parent ec22b4262c
commit ad87690125
3 changed files with 387 additions and 0 deletions

View file

@ -13,6 +13,8 @@ depends = []
"default/config/starship.toml" = "~/.config/starship.toml"
"default/config/helix" = "~/.config/helix"
"default/XCompose" = "~/.XCompose"
"default/bash_completion" = "~/.bash_completion"
"default/bash_completion.d" = "~/.bash_completion.d"
[default.variables]

3
default/bash_completion Normal file
View file

@ -0,0 +1,3 @@
for bcfile in ~/.bash_completion.d/* ; do
. $bcfile
done

View file

@ -0,0 +1,382 @@
_dotter() {
local i cur prev opts cmd
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
cmd=""
opts=""
for i in ${COMP_WORDS[@]}
do
case "${cmd},${i}" in
",$1")
cmd="dotter"
;;
dotter,deploy)
cmd="dotter__deploy"
;;
dotter,gen-completions)
cmd="dotter__gen__completions"
;;
dotter,help)
cmd="dotter__help"
;;
dotter,init)
cmd="dotter__init"
;;
dotter,undeploy)
cmd="dotter__undeploy"
;;
dotter,watch)
cmd="dotter__watch"
;;
dotter__help,deploy)
cmd="dotter__help__deploy"
;;
dotter__help,gen-completions)
cmd="dotter__help__gen__completions"
;;
dotter__help,help)
cmd="dotter__help__help"
;;
dotter__help,init)
cmd="dotter__help__init"
;;
dotter__help,undeploy)
cmd="dotter__help__undeploy"
;;
dotter__help,watch)
cmd="dotter__help__watch"
;;
*)
;;
esac
done
case "${cmd}" in
dotter)
opts="-g -l -d -v -q -f -y -p -h -V --global-config --local-config --cache-file --cache-directory --pre-deploy --post-deploy --pre-undeploy --post-undeploy --dry-run --verbose --quiet --force --noconfirm --patch --diff-context-lines --help --version deploy undeploy init watch gen-completions help"
if [[ ${cur} == -* || ${COMP_CWORD} -eq 1 ]] ; then
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
return 0
fi
case "${prev}" in
--global-config)
COMPREPLY=($(compgen -f "${cur}"))
return 0
;;
-g)
COMPREPLY=($(compgen -f "${cur}"))
return 0
;;
--local-config)
COMPREPLY=($(compgen -f "${cur}"))
return 0
;;
-l)
COMPREPLY=($(compgen -f "${cur}"))
return 0
;;
--cache-file)
COMPREPLY=($(compgen -f "${cur}"))
return 0
;;
--cache-directory)
COMPREPLY=($(compgen -f "${cur}"))
return 0
;;
--pre-deploy)
COMPREPLY=($(compgen -f "${cur}"))
return 0
;;
--post-deploy)
COMPREPLY=($(compgen -f "${cur}"))
return 0
;;
--pre-undeploy)
COMPREPLY=($(compgen -f "${cur}"))
return 0
;;
--post-undeploy)
COMPREPLY=($(compgen -f "${cur}"))
return 0
;;
--diff-context-lines)
COMPREPLY=($(compgen -f "${cur}"))
return 0
;;
*)
COMPREPLY=()
;;
esac
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
return 0
;;
dotter__deploy)
opts="-g -l -d -v -q -f -y -p -h --global-config --local-config --dry-run --verbose --quiet --force --noconfirm --patch --help"
if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
return 0
fi
case "${prev}" in
--global-config)
COMPREPLY=($(compgen -f "${cur}"))
return 0
;;
-g)
COMPREPLY=($(compgen -f "${cur}"))
return 0
;;
--local-config)
COMPREPLY=($(compgen -f "${cur}"))
return 0
;;
-l)
COMPREPLY=($(compgen -f "${cur}"))
return 0
;;
*)
COMPREPLY=()
;;
esac
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
return 0
;;
dotter__gen__completions)
opts="-s -g -l -d -v -q -f -y -p -h --shell --to --global-config --local-config --dry-run --verbose --quiet --force --noconfirm --patch --help"
if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
return 0
fi
case "${prev}" in
--shell)
COMPREPLY=($(compgen -W "bash elvish fish powershell zsh" -- "${cur}"))
return 0
;;
-s)
COMPREPLY=($(compgen -W "bash elvish fish powershell zsh" -- "${cur}"))
return 0
;;
--to)
COMPREPLY=($(compgen -f "${cur}"))
return 0
;;
--global-config)
COMPREPLY=($(compgen -f "${cur}"))
return 0
;;
-g)
COMPREPLY=($(compgen -f "${cur}"))
return 0
;;
--local-config)
COMPREPLY=($(compgen -f "${cur}"))
return 0
;;
-l)
COMPREPLY=($(compgen -f "${cur}"))
return 0
;;
*)
COMPREPLY=()
;;
esac
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
return 0
;;
dotter__help)
opts="deploy undeploy init watch gen-completions help"
if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
return 0
fi
case "${prev}" in
*)
COMPREPLY=()
;;
esac
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
return 0
;;
dotter__help__deploy)
opts=""
if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
return 0
fi
case "${prev}" in
*)
COMPREPLY=()
;;
esac
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
return 0
;;
dotter__help__gen__completions)
opts=""
if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
return 0
fi
case "${prev}" in
*)
COMPREPLY=()
;;
esac
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
return 0
;;
dotter__help__help)
opts=""
if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
return 0
fi
case "${prev}" in
*)
COMPREPLY=()
;;
esac
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
return 0
;;
dotter__help__init)
opts=""
if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
return 0
fi
case "${prev}" in
*)
COMPREPLY=()
;;
esac
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
return 0
;;
dotter__help__undeploy)
opts=""
if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
return 0
fi
case "${prev}" in
*)
COMPREPLY=()
;;
esac
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
return 0
;;
dotter__help__watch)
opts=""
if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
return 0
fi
case "${prev}" in
*)
COMPREPLY=()
;;
esac
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
return 0
;;
dotter__init)
opts="-g -l -d -v -q -f -y -p -h --global-config --local-config --dry-run --verbose --quiet --force --noconfirm --patch --help"
if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
return 0
fi
case "${prev}" in
--global-config)
COMPREPLY=($(compgen -f "${cur}"))
return 0
;;
-g)
COMPREPLY=($(compgen -f "${cur}"))
return 0
;;
--local-config)
COMPREPLY=($(compgen -f "${cur}"))
return 0
;;
-l)
COMPREPLY=($(compgen -f "${cur}"))
return 0
;;
*)
COMPREPLY=()
;;
esac
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
return 0
;;
dotter__undeploy)
opts="-g -l -d -v -q -f -y -p -h --global-config --local-config --dry-run --verbose --quiet --force --noconfirm --patch --help"
if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
return 0
fi
case "${prev}" in
--global-config)
COMPREPLY=($(compgen -f "${cur}"))
return 0
;;
-g)
COMPREPLY=($(compgen -f "${cur}"))
return 0
;;
--local-config)
COMPREPLY=($(compgen -f "${cur}"))
return 0
;;
-l)
COMPREPLY=($(compgen -f "${cur}"))
return 0
;;
*)
COMPREPLY=()
;;
esac
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
return 0
;;
dotter__watch)
opts="-g -l -d -v -q -f -y -p -h --global-config --local-config --dry-run --verbose --quiet --force --noconfirm --patch --help"
if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
return 0
fi
case "${prev}" in
--global-config)
COMPREPLY=($(compgen -f "${cur}"))
return 0
;;
-g)
COMPREPLY=($(compgen -f "${cur}"))
return 0
;;
--local-config)
COMPREPLY=($(compgen -f "${cur}"))
return 0
;;
-l)
COMPREPLY=($(compgen -f "${cur}"))
return 0
;;
*)
COMPREPLY=()
;;
esac
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
return 0
;;
esac
}
if [[ "${BASH_VERSINFO[0]}" -eq 4 && "${BASH_VERSINFO[1]}" -ge 4 || "${BASH_VERSINFO[0]}" -gt 4 ]]; then
complete -F _dotter -o nosort -o bashdefault -o default dotter
else
complete -F _dotter -o bashdefault -o default dotter
fi