12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- #compdef multipass
- _multipass_get_command_list () {
- # Sample output:
- # $ multipass --help
- # ...
- # Options:
- # -h, --help Display this help
- # -v, --verbose Increase logging verbosity. Repeat the 'v' in the short option
- # for more detail. Maximum verbosity is obtained with 4 (or more)
- # v's, i.e. -vvvv.
- # ...
- # Available commands:
- # alias Create an alias
- # aliases List available aliases
- # ...
- #
- $_comp_command1 --help | sed '1,/Available commands/d' | awk '/^[ \t]*[a-z]+/ { print $1 }'
- }
- _multipass_get_args_list () {
- # Sample output:
- # $ multpass help stop
- # ...
- # Options:
- # -h, --help Display this help
- # -v, --verbose Increase logging verbosity. Repeat the 'v' in the short
- # option for more detail. Maximum verbosity is obtained with
- # 4 (or more) v's, i.e. -vvvv.
- # --all Stop all instances
- # -t, --time <time> Time from now, in minutes, to delay shutdown of the
- # instance
- # -c, --cancel Cancel a pending delayed shutdown
- #
- # Arguments:
- # name Names of instances to stop. If omitted, and without the
- # --all option, 'primary' will be assumed.
- #
- local arg_name=$($_comp_command1 help ${words[2]} | sed '1,/Arguments/d' | awk '/^[ \t]*[a-z]+/ { print $1; exit }')
- case $arg_name in
- name)
- # Sample output:
- # $ multipass list
- # Name State IPv4 Image
- # workable-poacher Running 10.2.0.28 Ubuntu openHAB Home Appliance
- #
- $_comp_command1 list | sed '1d' | awk '/^[ \t]*[^ ]+/ { print $1 }'
- ;;
- command)
- _multipass_get_command_list
- ;;
- esac
- }
- _multipass () {
- typeset -A opt_args
- _arguments \
- '1: :->command'\
- '*: :->args'
- case $state in
- command)
- compadd $(_multipass_get_command_list)
- ;;
- *)
- compadd $(_multipass_get_args_list)
- ;;
- esac
- }
- _multipass "$@"
|