# compute bash completion script _compute_root_cmd=" --version --verbose --connect --log-level init exec ls start shutdown reboot reset powrst pause resume status setvcpus setmem setpass setcdrom delete" _compute_init_opts="--test --start" _compute_exec_opts="--timeout --executable --env --no-join-args" _compute_ls_opts="" _compute_start_opts="" _compute_shutdown_opts="--soft --normal --hard --unsafe" _compute_reboot_opts="" _compute_reset_opts="" _compute_powrst_opts="" _compute_pause_opts="" _compute_resume_opts="" _compute_status_opts="" _compute_setvcpus_opts="" _compute_setmem_opts="" _compute_setpass_opts="--encrypted" _compute_setcdrom_opts="--detach" _compute_delete_opts="--yes --save-volumes" _compute_complete_instances() { local base_name for file in /etc/libvirt/qemu/*.xml; do base_name="${file##*/}" printf '%s ' "${base_name//\.xml}" done } _compute_compreply() { if [[ "$current" = [a-z]* ]]; then _compute_compwords="$(_compute_complete_instances)" else _compute_compwords="$*" fi COMPREPLY=($(compgen -W "$_compute_compwords" -- "$current")) } _compute_complete() { local current previous nshift current="${COMP_WORDS[COMP_CWORD]}" case "$COMP_CWORD" in 1) COMPREPLY=($(compgen -W "$_compute_root_cmd" -- "$current")) ;; 2|3|4|5) nshift=$((COMP_CWORD-1)) previous="${COMP_WORDS[COMP_CWORD-nshift]}" case "$previous" in init) COMPREPLY=($(compgen -f -- "$current"));; exec) _compute_compreply "$_compute_exec_opts";; ls) COMPREPLY=($(compgen -W "$_compute_ls_opts" -- "$current"));; start) _compute_compreply "$_compute_start_opts";; shutdown) _compute_compreply "$_compute_shutdown_opts";; reboot) _compute_compreply "$_compute_reboot_opts";; reset) _compute_compreply "$_compute_reset_opts";; powrst) _compute_compreply "$_compute_powrst_opts";; pause) _compute_compreply "$_compute_pause_opts";; resume) _compute_compreply "$_compute_resume_opts";; status) _compute_compreply "$_compute_status_opts";; setvcpus) _compute_compreply "$_compute_setvcpus_opts";; setmem) _compute_compreply "$_compute_setmem_opts";; setpass) _compute_compreply "$_compute_setpass_opts";; setcdrom) _compute_compreply "$_compute_setcdrom_opts";; delete) _compute_compreply "$_compute_delete_opts";; *) COMPREPLY=() esac ;; *) COMPREPLY=($(compgen -W "$_compute_compwords" -- "$current")) esac } complete -F _compute_complete compute # vim: ft=bash