aboutsummaryrefslogtreecommitdiff
blob: 84ecbc8bf7d60cb6b0d36104a5026d50543a7876 (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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
#compdef rc-update rc-status rc rc-service

# openrc-0.12.4

local gentoo_runlevels
gentoo_runlevels=(/etc/runlevels/*(:t))

case "$service" in
	rc-service)
		if (( CURRENT == 2 )); then
			_arguments -s \
				'(-e --exists)'{-e,--exists}"[tests if the service exists or not]" \
				'(-l --list)'{-l,--list}'[list all available services]' \
				'(-r --resolve)'{-r,--resolve}'[resolve the service name to an init script]' \
				'(-C --nocolor)'{-C,--nocolor}'[Disable color output]' \
				'(-v --verbose)'{-v,--verbose}'[Run verbosely]' \
				'(-q --quiet)'{-q,--quiet}'[Run quietly]'
				_values "service" /etc/init.d/*~*.sh(:t)
		else
			case $words[2] in
				-e|--exists|-r|--resolve)
					(( CURRENT > 3 )) && return 0
					_values "service" /etc/init.d/*~*.sh(:t)
				;;
				-*)
					return 0
				;;
				*)
					_values "action" stop start restart describe zap
				;;
			esac
		fi
		;;
	rc-update)
		local used_init
		used_init=(${=${(M)${(f)"$(/sbin/rc-update show 2>/dev/null)"}:#*|*[a-z]*}% |*})

		if (( CURRENT == 2 )); then
			_values "rc-update actions" \
				'add[Add script to a runlevel]' \
				'del[Delete script from a runlevel]' \
				'show[Show scripts lanched at a runlevel]' \
				'-a[Add script to a runlevel]' \
				'-d[Delete script from a runlevel]' \
				'-s[Show scripts lanched at a runlevel]'
		elif (( CURRENT == 3 )); then
			case "$words[2]" in
				add|-a)
					_values "service" /etc/init.d/*~*.sh(:t)
					;;
				del|-d)
					_values "service" $used_init
					;;
				show|-s)
					_values "runlevels" $gentoo_runlevels \
						'-v[Show all init scripts]' \
						'--verbose[Show all init scripts]'
					;;
			esac
		elif (( CURRENT == 4 )); then
			_values "runlevels" $gentoo_runlevels
		fi
		;;
	rc-status)
		_arguments -s \
			{'(--all)-a','(-a)--all'}'[Show services at all runlevels]' \
			{'(--crashed)-c','(-c)--crashed'}'[Show crashed services]' \
			{'(--list)-l','(-l)--list'}'[Show list of runlevels]' \
			{'(--runlevel)-r','(-r)--runlevel'}'[Show the name of the current runlevel]' \
			{'(--servicelist)-s','(-s)--servicelist'}'[Show all services]' \
			{'(--unused)-u','(-u)--unused'}'[Show services not assigned to any run level]' \
			{'(--help)-h','(-h)--help'}'[Print this help output]' \
			{'(--nocolor)-C','(-C)--nocolor'}'[Disable color output]' \
			{'(--version)-V','(-V)--version'}'[Display software version]' \
			{'(--verbose)-v','(-v)--verbose'}'[Run verbosely]' \
			{'(--quiet)-q','(-q)--quiet'}'[Run quietly (Does not affect errors)]'

		_values 'runlevels' $gentoo_runlevels
		;;
	rc)
		if (( CURRENT == 2 )); then
			_values "runlevels" $gentoo_runlevels
		fi
		;;
esac