components/zsh/Completion/Solaris/Command/_fmadm
author Danek Duvall <danek.duvall@oracle.com>
Wed, 20 Jul 2011 16:57:37 -0700
changeset 429 02007d525e89
permissions -rw-r--r--
7021213 zsh completion for ipadm 7021214 zsh completion for fmadm 7023237 zsh completion for dtrace options 7023488 Fix TODO in _svcs_fmri (Can't remove default when there are other instances.)
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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 "$@"