mirror of
https://github.com/Gator96100/ProxSpace.git
synced 2025-03-12 04:36:22 -07:00
225 lines
7.5 KiB
Bash
225 lines
7.5 KiB
Bash
# bash completion for xm -*- shell-script -*-
|
|
|
|
# Use of this file is deprecated. The 'xm' command itself is no longer
|
|
# provided by upstream. It has been replaced with the 'xl' command, for
|
|
# which upstream provides completion, use that instead.
|
|
|
|
_xen_domain_names()
|
|
{
|
|
COMPREPLY=($(compgen -W "$(xm list 2>/dev/null |
|
|
awk '!/Name|Domain-0/ { print $1 }')" -- "$cur"))
|
|
}
|
|
|
|
_xen_domain_ids()
|
|
{
|
|
COMPREPLY=($(compgen -W "$(xm list 2>/dev/null |
|
|
awk '!/Name|Domain-0/ { print $2 }')" -- "$cur"))
|
|
}
|
|
|
|
_xm()
|
|
{
|
|
local cur prev words cword
|
|
_init_completion || return
|
|
|
|
# TODO: _split_longopt
|
|
|
|
local args command commands options
|
|
|
|
commands='console vncviewer create new delete destroy domid domname
|
|
dump-core list mem-max mem-set migrate pause reboot rename reset
|
|
restore resume save shutdown start suspend sysrq trigger top unpause
|
|
uptime usb-add usb-del vcpu-list vcpu-pin vcpu-set debug-keys dmesg
|
|
info log serve sched-credit sched-sedf block-attach block-detach
|
|
block-list block-configure network-attach network-detach network-list
|
|
vtpm-list pci-attach pci-detach pci-list pci-list-assignable-devices
|
|
scsi-attach scsi-detach scsi-list vnet-list vnet-create vnet-delete
|
|
labels addlabel rmlabel getlabel dry-run resources dumppolicy setpolicy
|
|
resetpolicy getpolicy shell help'
|
|
|
|
if ((cword == 1)); then
|
|
COMPREPLY=($(compgen -W "$commands" -- "$cur"))
|
|
else
|
|
if [[ $cur == *=* ]]; then
|
|
prev=${cur/=*/}
|
|
cur=${cur/*=/}
|
|
fi
|
|
|
|
command=${words[1]}
|
|
if [[ $cur == -* ]]; then
|
|
# possible options for the command
|
|
case $command in
|
|
create)
|
|
options='-c'
|
|
;;
|
|
dmesg)
|
|
options='--clear'
|
|
;;
|
|
list)
|
|
options='--long'
|
|
;;
|
|
reboot)
|
|
options='-w -a'
|
|
;;
|
|
shutdown)
|
|
options='-w -a -R -H'
|
|
;;
|
|
sched-credit)
|
|
options='-d -w -c'
|
|
;;
|
|
block-list | network-list | vtpm-list | vnet-list)
|
|
options='-l --long'
|
|
;;
|
|
getpolicy)
|
|
options='--dumpxml'
|
|
;;
|
|
new)
|
|
options='-h --help --help_config -q --quiet --path= -f=
|
|
--defconfig= -F= --config= -b --dryrun -x --xmldryrun
|
|
-s --skipdtd -p --paused -c --console_autoconnect'
|
|
;;
|
|
esac
|
|
COMPREPLY=($(compgen -W "$options" -- "$cur"))
|
|
else
|
|
case $command in
|
|
console | destroy | domname | domid | list | mem-set | mem-max | \
|
|
pause | reboot | rename | shutdown | unpause | vcpu-list | vcpu-pin | \
|
|
vcpu-set | block-list | network-list | vtpm-list)
|
|
_count_args
|
|
case $args in
|
|
2)
|
|
_xen_domain_names
|
|
;;
|
|
esac
|
|
;;
|
|
migrate)
|
|
_count_args
|
|
case $args in
|
|
2)
|
|
_xen_domain_names
|
|
;;
|
|
3)
|
|
_known_hosts_real -- "$cur"
|
|
;;
|
|
esac
|
|
;;
|
|
restore | dry-run | vnet-create)
|
|
_filedir
|
|
;;
|
|
save)
|
|
_count_args
|
|
case $args in
|
|
2)
|
|
_xen_domain_names
|
|
;;
|
|
3)
|
|
_filedir
|
|
;;
|
|
esac
|
|
;;
|
|
sysrq)
|
|
_count_args
|
|
case $args in
|
|
2)
|
|
_xen_domain_names
|
|
;;
|
|
3)
|
|
COMPREPLY=($(compgen -W "r s e i u b" -- "$cur"))
|
|
;;
|
|
esac
|
|
;;
|
|
block-attach)
|
|
_count_args
|
|
case $args in
|
|
2)
|
|
_xen_domain_names
|
|
;;
|
|
3)
|
|
COMPREPLY=($(compgen -W "phy: file:" -- "$cur"))
|
|
;;
|
|
5)
|
|
COMPREPLY=($(compgen -W "w r" -- "$cur"))
|
|
;;
|
|
6)
|
|
_xen_domain_names
|
|
;;
|
|
esac
|
|
;;
|
|
block-detach)
|
|
_count_args
|
|
case $args in
|
|
2)
|
|
_xen_domain_names
|
|
;;
|
|
3)
|
|
COMPREPLY=($(compgen -W "$(xm block-list $prev \
|
|
2>/dev/null | awk '!/Vdev/ { print $1 }')" \
|
|
-- "$cur"))
|
|
;;
|
|
esac
|
|
;;
|
|
network-attach)
|
|
_count_args
|
|
case $args in
|
|
2)
|
|
_xen_domain_names
|
|
;;
|
|
*)
|
|
COMPREPLY=($(compgen -W "script= ip= mac= bridge=
|
|
backend=" -- "$cur"))
|
|
;;
|
|
esac
|
|
;;
|
|
network-detach)
|
|
_count_args
|
|
case $args in
|
|
2)
|
|
_xen_domain_names
|
|
;;
|
|
3)
|
|
COMPREPLY=($(compgen -W "$(xm network-list $prev \
|
|
2>/dev/null | awk '!/Idx/ { print $1 }')" \
|
|
-- "$cur"))
|
|
;;
|
|
esac
|
|
;;
|
|
sched-credit)
|
|
case $prev in
|
|
-d)
|
|
_xen_domain_names
|
|
return
|
|
;;
|
|
esac
|
|
;;
|
|
create)
|
|
_filedir
|
|
COMPREPLY+=(
|
|
$(compgen -W '$(command ls /etc/xen 2>/dev/null)' \
|
|
-- "$cur"))
|
|
;;
|
|
new)
|
|
case $prev in
|
|
-f | -F | --defconfig | --config)
|
|
_filedir
|
|
return
|
|
;;
|
|
--path)
|
|
_filedir -d
|
|
return
|
|
;;
|
|
esac
|
|
|
|
_count_args
|
|
case $args in
|
|
2)
|
|
_xen_domain_names
|
|
;;
|
|
esac
|
|
;;
|
|
esac
|
|
fi
|
|
fi
|
|
} &&
|
|
complete -F _xm xm
|
|
|
|
# ex: filetype=sh
|