diff options
author | Peter Stephenson <pws@users.sourceforge.net> | 2012-06-21 08:50:14 +0000 |
---|---|---|
committer | Peter Stephenson <pws@users.sourceforge.net> | 2012-06-21 08:50:14 +0000 |
commit | 71052cb69c455f8182e8f85ba8d4ea4be7e5caf0 (patch) | |
tree | 3cc9aa0959c21dfd32344e068dea009ec9f0af08 /Completion/Solaris/Command/_zoneadm | |
parent | cbb8a3c762ba6034e5ae0c35e6d04c2de130f933 (diff) | |
download | zsh-71052cb69c455f8182e8f85ba8d4ea4be7e5caf0.tar.gz zsh-71052cb69c455f8182e8f85ba8d4ea4be7e5caf0.tar.xz zsh-71052cb69c455f8182e8f85ba8d4ea4be7e5caf0.zip |
Danek (plus .distfiles): 30520: updated Solaris 11 copmletion
Diffstat (limited to 'Completion/Solaris/Command/_zoneadm')
-rw-r--r-- | Completion/Solaris/Command/_zoneadm | 147 |
1 files changed, 147 insertions, 0 deletions
diff --git a/Completion/Solaris/Command/_zoneadm b/Completion/Solaris/Command/_zoneadm new file mode 100644 index 000000000..f0a45a1b8 --- /dev/null +++ b/Completion/Solaris/Command/_zoneadm @@ -0,0 +1,147 @@ +#compdef zoneadm +# Synced with the Solaris 11 build 168 man page + +_zoneadm_bootargs() { + # This is a subset of the arguments to kernel(1M) + _arguments -A "-*" \ + '-i[Alternate init]:path:_path_files' \ + '-m[SMF options]:option:_values "SMF option" debug milestone= quiet verbose' \ + '-s[Boot single user]' +} + +_zoneadm() { + local context state line expl + typeset -A opt_args + local -a subcmds fields + local -a solaris_attach solaris_install + local -a solaris10_attach solaris10_install + local brand brand_args + + subcmds=( + attach boot clone detach halt help install list mark move + ready reboot uninstall verify + ) + + solaris_attach=( + '(-d)-a[Path to archive]:path:_path_files' + '(-a)-d[Path to zonepath]:directory:_path_files -/' + ) + solaris_install=( + - set1 + '-c[Path to certificate]:path:_path_files' + '*-e[Additional package]:package:' + '-k[Path to key]:path:_path_files' + '-P[Publisher/URI mapping]:publisher:' + - set2 + '(-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]' + ) + + solaris10_attach=( + '(-d)-a[Path to archive]:path:_path_files' + '(-a)-d[Path to zonepath]:directory:_path_files -/' + ) + 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' \ + '*::command:->subcmd' && return 0 + + 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 "-*" \ + '-w[Force writable root]' \ + '-W[Boot in transient r/w mode]' \ + '*:boot options:_zoneadm_bootargs' + ;; + + ("clone") + _arguments -A "-*" \ + '-m[Clone mode]:mode:_values "mode" copy' \ + '-s[Source snapshot]:snapshot:_zfs_dataset -t snap' \ + ':source zone:_zones' + ;; + + ("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]' \ + ${(P)brand_args} + ;; + + ("detach") + _arguments -A "-*" \ + '-n[Dry run]' + ;; + + ("halt"|"ready"|"reboot"|"verify") + ;; + + + ("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 "-*" \ + ${(P)brand_args} + ;; + + ("list") + _arguments -A "-*" \ + '-c[Configured zones]' \ + '-i[Installed zones]' \ + '(-v)-p[Parsable output]' \ + '(-p)-v[Verbose mode]' + ;; + + ("mark") + _arguments -A "-*" \ + ':"incomplete":_values \"incomplete\" incomplete' + ;; + + ("move") + _arguments -A "-*" \ + ':new zone path:_path_files -/' + ;; + + ("uninstall") + _arguments -A "-*" \ + '-F[Force]' + ;; + esac +} + +_zoneadm "$@" |