aboutsummaryrefslogtreecommitdiff
path: root/bash-completion/reconcilio
diff options
context:
space:
mode:
Diffstat (limited to 'bash-completion/reconcilio')
-rw-r--r--bash-completion/reconcilio165
1 files changed, 165 insertions, 0 deletions
diff --git a/bash-completion/reconcilio b/bash-completion/reconcilio
new file mode 100644
index 000000000..292e7570f
--- /dev/null
+++ b/bash-completion/reconcilio
@@ -0,0 +1,165 @@
+# Bash completion function for reconcilio
+# vim: set et sw=4 sts=4 ts=4 ft=sh :
+
+# NOTE: This is still a work in progress, don't expect it to work well or
+# properly right now.
+
+_reconcilio() {
+ local cur prev opts
+
+ local action_opts general_opts deplist_opts
+ local linkage_opts install_opts all_opts
+
+ COMPREPLY=()
+ cur=${COMP_WORDS[COMP_CWORD]}
+ prev=${COMP_WORDS[COMP_CWORD-1]}
+
+ action_opts="--fix-linkage \
+ --version -V \
+ --help -h"
+ general_opts="--log-level \
+ --no-colour \
+ --no-color \
+ --environment -E \
+ --exact \
+ --verbose -v \
+ --resume-command-template"
+ linkage_opts="--library"
+ install_opts="--pretend -p \
+ --no-config-protection \
+ --debug-build \
+ --checks \
+ --fetch -f \
+ --no-safe-resume \
+ --show-reasons \
+ --show-use-descriptions \
+ --continue-on-failure"
+ deplist_opts="--dl-reinstall \
+ --dl-reinstall-scm \
+ --dl-upgrade \
+ --dl-new-slots \
+ --dl-downgrade \
+ --dl-deps-default \
+ --dl-installed-deps-pre \
+ --dl-installed-deps-runtime \
+ --dl-installed-deps-post \
+ --dl-uninstalled-deps-pre \
+ --dl-uninstalled-deps-runtime \
+ --dl-uninstalled-deps-post \
+ --dl-uninstalled-deps-suggested \
+ --dl-suggested \
+ --dl-circular \
+ --dl-blocks \
+ --dl-override-masks \
+ --dl-fall-back"
+
+ all_opts="${action_opts} ${general_opts} ${linkage_opts} ${install_opts} ${deplist_opts}"
+
+ local x
+ for x in "${COMP_WORDS[@]}" ; do
+ case "${x}" in
+ --fix-linkage)
+ action="linkage"
+ break
+ ;;
+ --version|-V|--help|-h)
+ action="info"
+ break
+ ;;
+ esac
+ done
+
+ case "${cur}" in
+ -*)
+ local opts=
+ [[ -z "${action}" ]] && action="all"
+ opts="${action}_opts"
+
+ COMPREPLY=($(compgen -W "${!opts}" -- "${cur}"))
+ return 0
+ ;;
+ *)
+ case "${prev}" in
+ ## Enum operators
+ --log-level|-L)
+ COMPREPLY=($(compgen -W "debug qa warning silent" -- "${cur}"))
+ return 0
+ ;;
+ --debug-build)
+ COMPREPLY=($(compgen -W "none split internal" -- "${cur}"))
+ return 0
+ ;;
+ --checks)
+ COMPREPLY=($(compgen -W "none default always" -- "${cur}"))
+ return 0
+ ;;
+ --show-reasons)
+ COMPREPLY=($(compgen -W "none summary full" -- "${cur}"))
+ return 0
+ ;;
+ --show-use-descriptions)
+ COMPREPLY=($(compgen -W "none new changed all" -- "${cur}"))
+ return 0
+ ;;
+ --continue-on-failure)
+ COMPREPLY=($(compgen -W "if-fetch-only never if-satisfied always" -- "${cur}"))
+ return 0
+ ;;
+
+ --dl-reinstall)
+ COMPREPLY=($(compgen -W "never always if-use-changed" -- "${cur}"))
+ return 0
+ ;;
+ --dl-reinstall-scm)
+ COMPREPLY=($(compgen -W "never always daily weekly" -- "${cur}"))
+ return 0
+ ;;
+ --dl-upgrade)
+ COMPREPLY=($(compgen -W "always as-needed" -- "${cur}"))
+ return 0
+ ;;
+ --dl-new-slots)
+ COMPREPLY=($(compgen -W "always as-needed" -- "${cur}"))
+ return 0
+ ;;
+ --dl-downgrade)
+ COMPREPLY=($(compgen -W "as-needed warning error" -- "${cur}"))
+ return 0
+ ;;
+ --dl-deps-default|--dl-installed-deps-pre|--dl-installed-deps-runtime|--dl-installed-deps-post|--dl-uninstalled-deps-pre|--dl-uninstalled-deps-runtime|--dl-uninstalled-deps-post|--dl-uninstalled-deps-suggested)
+ COMPREPLY=($(compgen -W "pre pre-or-post post try-post discard" -- "${cur}"))
+ return 0
+ ;;
+
+ --dl-suggested)
+ COMPREPLY=($(compgen -W "show install discard" -- "${cur}"))
+ return 0
+ ;;
+ --dl-circular)
+ COMPREPLY=($(compgen -W "error discard" -- "${cur}"))
+ return 0
+ ;;
+ --dl-blocks)
+ COMPREPLY=($(compgen -W "accumulate error discard" -- "${cur}"))
+ return 0
+ ;;
+ --dl-override-masks)
+ COMPREPLY=($(compgen -W "tilde-keyword unkeyworded profile repository license" -- "${cur}"))
+ return 0
+ ;;
+ --dl-fall-back)
+ COMPREPLY=($(compgen -W "as-needed-except-targets as-needed never" -- "${cur}"))
+ return 0
+ ;;
+ *)
+ case "${action}" in
+ --fix-linkage)
+ return 0
+ ;;
+ esac
+ ;;
+ esac
+ ;;
+ esac
+}
+complete -F _reconcilio reconcilio