diff options
Diffstat (limited to 'usr/src/cmd/nsadmin/bash/bash_completion.d/zones')
| -rw-r--r-- | usr/src/cmd/nsadmin/bash/bash_completion.d/zones | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/usr/src/cmd/nsadmin/bash/bash_completion.d/zones b/usr/src/cmd/nsadmin/bash/bash_completion.d/zones new file mode 100644 index 0000000000..e4bc5b4155 --- /dev/null +++ b/usr/src/cmd/nsadmin/bash/bash_completion.d/zones @@ -0,0 +1,50 @@ +_zlogin() +{ + local cur prev opts base + COMPREPLY=() + cur="${COMP_WORDS[COMP_CWORD]}" + prev="${COMP_WORDS[COMP_CWORD-1]}" + + # The -e and -l take non-zone arguments, otherwise complete zone + if [[ ${prev} != '-e' ]] && [[ ${prev} != '-l' ]]; then + local running=$(zoneadm list | grep -v '^global$') + COMPREPLY=( $(compgen -W "${running}" -- ${cur}) ) + fi + if [[ -n "$COMPREPLY" ]]; then + return 0 + fi + + _zone_alias + return 0 +} + +_dash_z_zone() +{ + local cur prev opts base + COMPREPLY=() + cur="${COMP_WORDS[COMP_CWORD]}" + prev="${COMP_WORDS[COMP_CWORD-1]}" + + # The -z takes a zone option, ignore everything else + if [[ ${prev} =~ -.*z$ ]]; then + local zones=$(zoneadm list -c | grep -v '^global$') + COMPREPLY=( $(compgen -W "${zones}" -- ${cur}) ) + if [[ -n "$COMPREPLY" ]]; then + return 0 + fi + _zone_alias + fi + return 0 +} + +complete -F _zlogin zlogin +complete -F _dash_z_zone zoneadm +complete -F _dash_z_zone zonecfg +complete -F _dash_z_zone svcs +complete -F _dash_z_zone svcadm +complete -F _dash_z_zone svcprop +complete -F _dash_z_zone pgrep +complete -F _dash_z_zone pkill +complete -F _dash_z_zone ps +complete -F _dash_z_zone ptree +complete -F _dash_z_zone wall |
