bash-it/completion/available/pub.completion.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