#compdef vzctl
_vzctl() {
_arguments
'--quiet[Quiet]'
'--verbose[Verbose output]'
'*::OpenVZ command:_OpenVZ_command'
}
(( $+functions[_OpenVZ_command] )) ||
_OpenVZ_command() {
(($+_OpenVZ_cmds )) || _OpenVZ_cmds=(
'start:Start a VE'
'restart:Restart a VE'
'status:Show VE status'
'stop:Stop a VE'
'enter:Enter into a VE'
'mount:Mount VE private area'
'umount:Umount VE private area'
'set:Set various VE parameters'
'destroy:Destroy a zone'
'runscript:Run specified shell script into a VE'
'create:Create a new VE area'
'exec:Execute'
'exec2:Execute'
)
if (( CURRENT == 1 )); then
_describe -t commands 'OpenVZ command' _OpenVZ_cmds
else
local curcontext="$curcontext"
cmd="${_OpenVZ_cmds[(r)$words[1]:*]%%:*}"
if (( $#cmd )); then
curcontext="${curcontext%:*:*}:OpenVZ-${cmd}:"
_call_function ret _OpenVZ_$cmd || _message 'no more arguments'
else
_message "Unknow OpenVZ command: $words[1]"
fi
return ret
fi
}
### Utility functions
### OpenVZ functions
(( $+functions[_OpenVZ_set] )) ||
_OpenVZ_set(){
#runvms=(${${(M)${(f)"$(vzlist -H -a -o veid,status,hostname)"}:#[[:blank:]]##[[:digit:]]*running*}/(#b)[[:blank:]]##([[:digit:]]##)[[:blank:]]##[[:alpha:]]##[[:blank:]]##/$match[1]:})
runvms=(${${(M)${(f)"$(vzlist -H -a -o veid,status,hostname)"}:#[[:blank:]]##[[:digit:]]**}/(#b)[[:blank:]]##([[:digit:]]##)[[:blank:]]##[[:alpha:]]##[[:blank:]]##/$match[1]:})
_arguments -s
'1:veid:(($runvms))'
'--onboot[yes|no]:onboot:(yes no)'
'--root'
'--userpasswd[user:passwd]'
'--save'
}
(( $+functions[_OpenVZ_start] )) ||
_OpenVZ_start(){
runvms=(${${(M)${(f)"$(vzlist -H -a -o veid,status,hostname)"}:#[[:blank:]]##[[:digit:]]*stopped*}/(#b)[[:blank:]]##([[:digit:]]##)[[:blank:]]##[[:alpha:]]##[[:blank:]]##/$match[1]:})
_arguments -s
'1:veid:(($runvms))'
}
(( $+functions[_OpenVZ_restart] )) ||
_OpenVZ_restart(){
runvms=(${${(M)${(f)"$(vzlist -H -a -o veid,status,hostname)"}:#[[:blank:]]##[[:digit:]]*stopped*}/(#b)[[:blank:]]##([[:digit:]]##)[[:blank:]]##[[:alpha:]]##[[:blank:]]##/$match[1]:})
_arguments -s
'1:veid:(($runvms))'
}
(( $+functions[_OpenVZ_stop] )) ||
_OpenVZ_stop(){
runvms=(${${(M)${(f)"$(vzlist -H -a -o veid,status,hostname)"}:#[[:blank:]]##[[:digit:]]*running*}/(#b)[[:blank:]]##([[:digit:]]##)[[:blank:]]##[[:alpha:]]##[[:blank:]]##/$match[1]:})
_arguments -s
'1:veid:(($runvms))'
}
(( $+functions[_OpenVZ_reload] )) ||
_OpenVZ_reload(){
runvms=(${${(M)${(f)"$(vzlist -H -a -o veid,status,hostname)"}:#[[:blank:]]##[[:digit:]]*running*}/(#b)[[:blank:]]##([[:digit:]]##)[[:blank:]]##[[:alpha:]]##[[:blank:]]##/$match[1]:})
_arguments -s
'1:veid:(($runvms))'
}
(( $+functions[_OpenVZ_exec] )) ||
_OpenVZ_exec(){
}
(( $+functions[_OpenVZ_exec2] )) ||
_OpenVZ_exec2(){
}
(( $+functions[_OpenVZ_enter] )) ||
_OpenVZ_enter(){
runvms=(${${(M)${(f)"$(vzlist -H -a -o veid,status,hostname)"}:#[[:blank:]]##[[:digit:]]*running*}/(#b)[[:blank:]]##([[:digit:]]##)[[:blank:]]##[[:alpha:]]##[[:blank:]]##/$match[1]:})
_arguments -s
'1:veid:(($runvms))'
}