summaryrefslogtreecommitdiffstats
path: root/completions/mdtool
diff options
context:
space:
mode:
Diffstat (limited to 'completions/mdtool')
-rw-r--r--completions/mdtool62
1 files changed, 62 insertions, 0 deletions
diff --git a/completions/mdtool b/completions/mdtool
new file mode 100644
index 0000000..428e33b
--- /dev/null
+++ b/completions/mdtool
@@ -0,0 +1,62 @@
+# mdtool completion -*- shell-script -*-
+
+_mdtool()
+{
+ local cur prev words cword
+ _init_completion || return
+
+ local command i
+
+ for ((i = 1; i < ${#words[@]} - 1; i++)); do
+ if [[ ${words[i]} == @(build|generate-makefiles|setup) ]]; then
+ command=${words[i]}
+ break
+ fi
+ done
+
+ if [[ -v command ]]; then
+ case $command in
+ "build")
+ COMPREPLY=($(compgen -W '--f --buildfile --p --project' \
+ -S":" -- "$cur"))
+ # TODO: This does not work :(
+ #if [[ "$prev" == *: ]]; then
+ # case $prev in
+ # @(--p:|--project:))
+ # COMPREPLY=( $(compgen -f -G "*.mdp" -- "$cur") )
+ # ;;
+ # @(--f:|--buildfile:))
+ # COMPREPLY=( $(compgen -f -G "*.mdp" -G "*.mds" -- "$cur") )
+ # ;;
+ # esac
+ #fi
+ return
+ ;;
+ "generate-makefiles")
+ compopt -o filenames
+ COMPREPLY=($(compgen -o filenames -G"*.mds" -- "$cur"))
+ if [[ $prev == *mds ]]; then
+ COMPREPLY=($(compgen -W '--simple-makefiles --s --d:' \
+ -- "$cur"))
+ fi
+ return
+ ;;
+ "setup")
+ # TODO: at least return filenames after these options.
+ COMPREPLY=($(compgen -W 'install i uninstall u check-install
+ ci update up list l list-av la list-update lu rep-add ra
+ rep-remove rr rep-update ru rep-list rl reg-update
+ reg-build rgu info rep-build rb pack p help h dump-file' \
+ -- "$cur"))
+ return
+ ;;
+ esac
+ fi
+
+ COMPREPLY=($(compgen -W 'gsetup build dbgen project-export
+ generate-makefiles gettext-update setup -q' -- "$cur"))
+
+} &&
+ complete -F _mdtool mdtool
+
+# ex: filetype=sh