| Current File : //usr/share/zsh/5.0.7/functions/Completion/Solaris/_zoneadm |
#compdef zoneadm
# Synced with the S11U2 build 34 man page
_zoneadm_bootargs() {
# This is a subset of the arguments to kernel(1M)
_arguments -A "-*" \
'-m[SMF options]:option:_values "SMF option" debug milestone= quiet verbose' \
'-s[Boot single user]' \
'-L[List available boot environments]' \
'-Z[Boot a named environment]:boot environment: '
}
_zoneadm() {
local context state line expl
typeset -A opt_args
local -a subcmds subcmds_solariskz fields
local -a solaris_attach solaris_clone solaris_install
local -a solariskz_attach solariskz_clone solariskz_install
local -a solaris10_attach solaris10_clone solaris10_install
local -a extended_create_options extended_destroy_options
local brand brand_args
subcmds=(
attach boot clone detach halt help install list mark move
ready reboot uninstall verify
)
subcmds_solariskz=(
savecore suspend
)
extended_create_options=(
"cert:certificate:_path_files"
"cacert:CA certificate:_path_files"
"force-takeover"
"force-zpool-import"
"force-zpool-create:ZFS pool: "
"force-zpool-create-all"
"initialize-hostdata"
"key:key:_path_files"
)
extended_destroy_options=(
"force-zpool-destroy:ZFS pool: "
"force-zpool-destroy-all"
)
solaris_attach=(
'-c[Specify configuration profile]:path:_files -g \*.xml'
'-U[Update all packages to latest versions]'
'-z[Attach existing zone boot environment]:zone boot environment: '
)
solaris_clone=(
'-c[Specify configuration profile]:path:_files -g \*.xml'
)
solaris_install=(
'-c[Specify configuration profile]:path:_files -g \*.xml'
- set1
'-m[Specify install (AI) manifest]:path:_files -g \*.xml'
- set2
'(-d)-a[Path to archive]:path:_path_files'
'(-a -z)-d[Path to installed zone root]:directory:path_files -/'
'-p[Preserve system configuration]'
'-s[Install silently]'
'-u[Unconfigure after installation]'
'-v[Verbose]'
'(-d)-z[Name of zone in unified archive]:zone: '
)
solariskz_attach=()
solariskz_clone=( $solaris_clone )
solariskz_install=(
'-a(-m)[Specify unified archive]:path:_path_files'
'-b[Specify boot media]:path:_path_files'
'-c[Specify configuration profile]:path:_path_files'
'-m(-a)[Specify install (AI) manifest]:path:_path_files'
'-S[Specify root filesystem size]:size: '
'-v[Verbose]'
'-z[Name of zone in unified archive]:zone: '
)
solaris10_attach=(
'(-d)-a[Path to archive]:path:_path_files'
'(-a)-d[Path to zonepath]:directory:_path_files -/'
)
solaris10_clone=()
solaris10_install=(
'(-d)-a[Path to archive]:path:_path_files'
'(-a)-d[Path to installed zone root]:directory:path_files -/'
'-p[Preserve system configuration]'
'-s[Install silently]'
'-u[Unconfigure after installation]'
'-v[Verbose]'
)
if [[ $service == "zoneadm" ]]; then
_arguments -C -A "-*" \
'-R[Alternate root]:alternate root:_path_files -/' \
'-u[Zone UUID]:zone UUID: ' \
'-z[Zone name]:zone name:_zones -t c' \
'*::command:->subcmd' && return 0
if [[ -n $opt_args[-z] ]]; then
brand=${${"${(@s,:,)$(zoneadm -z $opt_args[-z] list -p)}"[6]}//-/}
brand_args=subcmds_${brand}
subcmds=( ${(P)brand_args} $subcmds )
fi
if (( CURRENT == 1 )); then
_wanted commands expl "zoneadm subcommand" compadd -a subcmds
return
fi
service="$words[1]"
curcontext="${curcontext%:*}=$service:"
fi
case $service in
("boot")
# Completion of boot arguments after -- is kinda hacky.
_arguments -S -A "-*" \
'-R[Force new boot instead of resume]' \
'-w[Force writable root]' \
'-W[Boot in transient r/w mode]' \
'*:boot options:_zoneadm_bootargs'
;;
("clone")
if [[ -n $opt_args[-z] ]]; then
brand=${${"${(@s,:,)$(zoneadm -z $opt_args[-z] list -p)}"[6]}//-/}
brand_args=${brand}_clone
fi
_arguments -A "-*" \
'-m[Clone mode]:mode:_values "mode" copy' \
'-s[Source snapshot]:snapshot:_zfs_dataset -t snap' \
'-x[Extended options]:extended option:_values -w "extended option" $extended_create_options' \
${(P)brand_args} \
':source zone:_zones -t i'
;;
("attach")
if [[ -n $opt_args[-z] ]]; then
brand=${${"${(@s,:,)$(zoneadm -z $opt_args[-z] list -p)}"[6]}//-/}
brand_args=${brand}_attach
fi
_arguments -A "-*" \
'-F[Force attach]' \
'-n[Path to zone manifest]:path to zone manifest:_path_files' \
'-u[Update on attach]' \
'-x[Extended options]:extended option:_values -w "extended option" $extended_create_options' \
${(P)brand_args}
;;
("detach")
_arguments -A "-*" \
'-n[Dry run]'
;;
("halt"|"ready"|"reboot"|"verify"|"suspend")
;;
("help")
_wanted commands expl "zoneadm subcommand" compadd -a subcmds
;;
("install")
if [[ -n $opt_args[-z] ]]; then
brand=${${"${(@s,:,)$(zoneadm -z $opt_args[-z] list -p)}"[6]}//-/}
brand_args=${brand}_install
fi
_arguments -A "-*" \
'-x[Extended options]:extended option:_values -w "extended option" $extended_create_options' \
${(P)brand_args}
;;
("list")
_arguments -A "-*" \
'-c[Configured zones]' \
'-i[Installed zones]' \
'(-v)-p[Parsable output]' \
'(-p)-v[Verbose mode]'
;;
("mark")
_arguments -A "-*" \
':state:(incomplete unavailable)'
;;
("move")
_arguments -A "-*" \
':new zone path:_path_files -/'
;;
("savecore")
_arguments -A "-*" \
"-L[Don't pause zone]" \
'-f[Path to dumpfile]:path:_path_files'
;;
("uninstall")
_arguments -A "-*" \
'-F[Force]' \
'-x[Extended options]:extended option:_values -w "extended option" $extended_destroy_options'
;;
esac
}
_zoneadm "$@"