summaryrefslogtreecommitdiff
path: root/usr/src/cmd/nsadmin/bash/bash_completion.d/zones
blob: e4bc5b4155f37bc3865455d4bd98495e603f6466 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
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