# 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 setpasswd" _compute_init_opts="" _compute_exec_opts=" --timeout --executable --env --no-join-args" _compute_ls_opts="" _compute_start_opts="" _compute_shutdown_opts="--method" _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_setpasswd_opts="--encrypted" _compute_complete_instances() { for file in /etc/libvirt/qemu/*.xml; do nodir="${file##*/}" printf '%s ' "${nodir//\.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";; setpasswd) _compute_compreply "$_compute_setpasswd_opts";; *) COMPREPLY=() esac ;; *) COMPREPLY=($(compgen -W "$_compute_compwords" -- "$current")) esac } complete -F _compute_complete compute # vim: ft=bash