author | Danek Duvall <danek.duvall@oracle.com> |
Wed, 31 Aug 2011 15:30:47 -0700 | |
changeset 510 | 53bd319b010e |
parent 429 | 02007d525e89 |
permissions | -rw-r--r-- |
429
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
1 |
#compdef fmadm |
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
2 |
# Synced with the Nevada build 168 man page |
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
3 |
|
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
4 |
_fm_modules() { |
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
5 |
compadd "$@" - $(fmadm config 2> /dev/null | awk 'NR == 1 {continue} {print $1}') |
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
6 |
} |
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
7 |
|
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
8 |
_fm_faulted_fmris() { |
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
9 |
compadd "$@" - $(fmadm faulty -r 2> /dev/null | awk '{print $1}') |
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
10 |
} |
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
11 |
|
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
12 |
_fm_faulted_uuids() { |
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
13 |
compadd "$@" - $(fmadm faulty -s 2> /dev/null | tail +4 | awk '{print $4}') |
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
14 |
} |
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
15 |
|
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
16 |
_fm_faulted_labels() { |
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
17 |
local q='"' |
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
18 |
compadd "$@" - $(fmadm faulty -f 2> /dev/null | while read line; do |
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
19 |
if [[ $line == "----"* ]]; then |
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
20 |
read line |
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
21 |
if [[ $line == '"'* ]]; then |
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
22 |
print ${${line[(r)$q,(rn:2:)$q]}[2,-2]} |
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
23 |
fi |
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
24 |
fi |
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
25 |
done) |
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
26 |
} |
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
27 |
|
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
28 |
_fmadm() { |
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
29 |
local context state line expl |
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
30 |
local -A opt_args |
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
31 |
local -a subcmds |
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
32 |
|
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
33 |
# TODO: lookup-alias and remove-alias need completion based on the |
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
34 |
# output of list-alias, but I have no examples of that output. |
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
35 |
|
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
36 |
subcmds=( |
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
37 |
"acquit" "config" "faulty" "flush" "load" "unload" |
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
38 |
"repaired" "replaced" "reset" "rotate" |
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
39 |
"add-alias" "remove-alias" "lookup-alias" "list-alias" "sync-alias" |
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
40 |
) |
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
41 |
|
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
42 |
if [[ $service == "fmadm" ]]; then |
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
43 |
_arguments -C -A "-*" \ |
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
44 |
'-q[Quite mode]' \ |
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
45 |
'*::command:->subcmd' && return 0 |
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
46 |
|
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
47 |
if (( CURRENT == 1 )); then |
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
48 |
_wanted commands expl "fmadm subcommand" compadd -a subcmds |
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
49 |
return |
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
50 |
fi |
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
51 |
service="$words[1]" |
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
52 |
curcontext="${curcontext%:*}=$service:" |
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
53 |
fi |
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
54 |
|
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
55 |
case $service in |
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
56 |
("acquit") |
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
57 |
_alternative \ |
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
58 |
"fmadm-acquit-label:label:_fm_faulted_labels" \ |
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
59 |
"fmadm-acquit-uuid:uuid:_fm_faulted_uuids" \ |
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
60 |
"fmadm-acquit-fmri:fmri:_fm_faulted_fmris" |
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
61 |
;; |
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
62 |
|
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
63 |
("config") |
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
64 |
;; |
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
65 |
|
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
66 |
("faulty") |
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
67 |
_arguments -A "-*" \ |
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
68 |
'-a[Display all faults]' \ |
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
69 |
'-f[Display faulty FRUs]' \ |
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
70 |
'-g[Group faults]' \ |
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
71 |
'-i[Display persistent cache IDs]' \ |
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
72 |
'-n[Limit output to n entries]:number:' \ |
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
73 |
'-p[Page output]' \ |
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
74 |
'-r[Display resources]' \ |
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
75 |
'-s[Display one-line summaries]' \ |
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
76 |
'-u[Only display fault with given uuid]:uuid:_fm_faulted_uuids' \ |
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
77 |
'-v[Display full output]' |
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
78 |
;; |
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
79 |
|
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
80 |
("flush") |
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
81 |
_fm_faulted_fmris |
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
82 |
;; |
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
83 |
|
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
84 |
("load") |
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
85 |
_path_files -g "/*" |
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
86 |
;; |
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
87 |
|
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
88 |
("unload") |
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
89 |
_fm_modules |
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
90 |
;; |
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
91 |
|
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
92 |
("repaired"|"replaced") |
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
93 |
_alternative \ |
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
94 |
"fmadm-acquit-label:label:_fm_faulted_labels" \ |
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
95 |
"fmadm-acquit-fmri:fmri:_fm_faulted_fmris" |
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
96 |
;; |
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
97 |
|
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
98 |
("reset") |
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
99 |
_arguments -A "-*" \ |
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
100 |
'-s[Reset named SERD]:serd:' \ |
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
101 |
':module:_fm_modules' |
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
102 |
;; |
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
103 |
|
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
104 |
("rotate") |
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
105 |
_values "logfile" "errlog" "fltlog" "infolog" "infolog_hival" |
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
106 |
;; |
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
107 |
|
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
108 |
esac |
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
109 |
} |
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
110 |
|
02007d525e89
7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
111 |
_fmadm "$@" |