63 lines
2.1 KiB
Bash
63 lines
2.1 KiB
Bash
# mdtool completion -*- shell-script -*-
|
|
|
|
_mdtool()
|
|
{
|
|
local cur prev words cword
|
|
_init_completion || return
|
|
|
|
local command i
|
|
|
|
for (( i=0; i < ${#words[@]}-1; i++ )); do
|
|
if [[ ${words[i]} == @(build|generate-makefiles|setup) ]]; then
|
|
command=${words[i]}
|
|
fi
|
|
done
|
|
|
|
if [[ -n "$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 0
|
|
;;
|
|
"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 0
|
|
;;
|
|
"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 0
|
|
;;
|
|
esac
|
|
fi
|
|
|
|
COMPREPLY=( $( compgen -W 'gsetup build dbgen project-export
|
|
generate-makefiles gettext-update setup -q' -- "$cur" ) )
|
|
|
|
return 0
|
|
} &&
|
|
complete -F _mdtool mdtool
|
|
|
|
# ex: ts=4 sw=4 et filetype=sh
|