185 lines
5.2 KiB
Bash
185 lines
5.2 KiB
Bash
#!/bin/bash
|
|
|
|
# ------------------------------------
|
|
# Original Credits : https://github.com/claudiodangelis/dart-bash_completion
|
|
# ------------------------------------
|
|
if command -v pub > /dev/null; then
|
|
_pub() {
|
|
|
|
local cur prev opts
|
|
COMPREPLY=()
|
|
cur="${COMP_WORDS[COMP_CWORD]}"
|
|
prev="${COMP_WORDS[COMP_CWORD-1]}"
|
|
prevprev="${COMP_WORDS[COMP_CWORD-2]}"
|
|
|
|
# Commands
|
|
cmds="build cache deps get global help publish run serve upgrade uploader \
|
|
version"
|
|
|
|
# Per-command subcommands
|
|
cache_cmds="add repair"
|
|
global_cmds="activate deactivate run"
|
|
|
|
|
|
# Global options
|
|
opts="--help --version --no-trace --trace --verbosity --verbose"
|
|
|
|
# Per-command options
|
|
build_opts="--help --mode --all --format --output"
|
|
cache_opts="--help"
|
|
deps_opts="--help --style"
|
|
get_opts="--help --no-offline --offline"
|
|
global_opts="--help"
|
|
help_opts="--help" # We can probably get rid of this
|
|
publish_opts="--help --dry-run --force --server"
|
|
run_opts="--help"
|
|
serve_opts="--help --mode --all --hostname --port --no-dart2js --dart2js \
|
|
--no-force-poll --force-poll"
|
|
|
|
upgrade_opts="--help --no-offline --offline"
|
|
uploader_opts="--help --server --package"
|
|
version_opts="--help" # We can probably get rid of this
|
|
|
|
if [[ ${cur} == -* ]] ; then
|
|
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
|
|
else
|
|
COMPREPLY=( $(compgen -W "${cmds}" -- ${cur}) )
|
|
fi
|
|
|
|
case "${prev}" in
|
|
build)
|
|
if [[ ${cur} == -* ]] ; then
|
|
COMPREPLY=( $(compgen -W "${build_opts}" -- ${cur}) )
|
|
return 0
|
|
else
|
|
COMPREPLY=()
|
|
return 0
|
|
fi
|
|
;;
|
|
|
|
cache)
|
|
if [[ ${cur} == -* ]] ; then
|
|
COMPREPLY=( $(compgen -W "${cache_opts}" -- ${cur}) )
|
|
return 0
|
|
else
|
|
COMPREPLY=( $(compgen -W "${cache_cmds}" -- ${cur}) )
|
|
return 0
|
|
fi
|
|
;;
|
|
|
|
deps)
|
|
if [[ ${cur} == -* ]] ; then
|
|
COMPREPLY=( $(compgen -W "${deps_opts}" -- ${cur}) )
|
|
return 0
|
|
else
|
|
COMPREPLY=()
|
|
return 0
|
|
fi
|
|
;;
|
|
|
|
|
|
get)
|
|
if [[ ${cur} == -* ]] ; then
|
|
COMPREPLY=( $(compgen -W "${get_opts}" -- ${cur}) )
|
|
return 0
|
|
else
|
|
COMPREPLY=()
|
|
return 0
|
|
fi
|
|
;;
|
|
|
|
global)
|
|
if [[ ${cur} == -* ]] ; then
|
|
COMPREPLY=( $(compgen -W "${global_opts}" -- ${cur}) )
|
|
return 0
|
|
else
|
|
COMPREPLY=( $(compgen -W "${global_cmds}" -- ${cur}) )
|
|
return 0
|
|
fi
|
|
;;
|
|
|
|
|
|
help)
|
|
if [[ ${cur} == -* ]] ; then
|
|
COMPREPLY=( $(compgen -W "${help_opts}" -- ${cur}) )
|
|
return 0
|
|
else
|
|
COMPREPLY=()
|
|
return 0
|
|
fi
|
|
;;
|
|
|
|
|
|
publish)
|
|
if [[ ${cur} == -* ]] ; then
|
|
COMPREPLY=( $(compgen -W "${publish_opts}" -- ${cur}) )
|
|
return 0
|
|
else
|
|
COMPREPLY=()
|
|
return 0
|
|
fi
|
|
;;
|
|
|
|
run)
|
|
if [[ ${cur} == -* ]] ; then
|
|
COMPREPLY=( $(compgen -W "${run_opts}" -- ${cur}) )
|
|
return 0
|
|
else
|
|
COMPREPLY=()
|
|
return 0
|
|
fi
|
|
;;
|
|
|
|
|
|
serve)
|
|
if [[ ${cur} == -* ]] ; then
|
|
COMPREPLY=( $(compgen -W "${serve_opts}" -- ${cur}) )
|
|
return 0
|
|
else
|
|
COMPREPLY=()
|
|
return 0
|
|
fi
|
|
;;
|
|
|
|
|
|
upgrade)
|
|
if [[ ${cur} == -* ]] ; then
|
|
COMPREPLY=( $(compgen -W "${upgrade_opts}" -- ${cur}) )
|
|
return 0
|
|
else
|
|
COMPREPLY=()
|
|
return 0
|
|
fi
|
|
;;
|
|
|
|
|
|
uploader)
|
|
if [[ ${cur} == -* ]] ; then
|
|
COMPREPLY=( $(compgen -W "${uploader_opts}" -- ${cur}) )
|
|
return 0
|
|
else
|
|
COMPREPLY=()
|
|
return 0
|
|
fi
|
|
;;
|
|
|
|
|
|
version)
|
|
if [[ ${cur} == -* ]] ; then
|
|
COMPREPLY=( $(compgen -W "${version_opts}" -- ${cur}) )
|
|
return 0
|
|
else
|
|
COMPREPLY=()
|
|
return 0
|
|
fi
|
|
;;
|
|
|
|
*)
|
|
;;
|
|
|
|
esac
|
|
|
|
}
|
|
|
|
complete -o default -F _pub pub
|
|
fi |