base-files: rc.common: fix missing EXTRA_HELP texts
[openwrt/openwrt.git] / package / base-files / files / etc / rc.common
1 #!/bin/sh
2 # Copyright (C) 2006-2012 OpenWrt.org
3
4 . $IPKG_INSTROOT/lib/functions.sh
5 . $IPKG_INSTROOT/lib/functions/service.sh
6
7 initscript=$1
8 action=${2:-help}
9 shift 2
10
11 start() {
12 return 0
13 }
14
15 stop() {
16 return 0
17 }
18
19 reload() {
20 restart
21 }
22
23 restart() {
24 trap '' TERM
25 stop "$@"
26 trap - TERM
27 start "$@"
28 }
29
30 boot() {
31 start "$@"
32 }
33
34 shutdown() {
35 stop
36 }
37
38 disable() {
39 name="$(basename "${initscript}")"
40 rm -f "$IPKG_INSTROOT"/etc/rc.d/S??$name
41 rm -f "$IPKG_INSTROOT"/etc/rc.d/K??$name
42 }
43
44 enable() {
45 err=1
46 name="$(basename "${initscript}")"
47 [ "$START" ] && \
48 ln -sf "../init.d/$name" "$IPKG_INSTROOT/etc/rc.d/S${START}${name##S[0-9][0-9]}" && \
49 err=0
50 [ "$STOP" ] && \
51 ln -sf "../init.d/$name" "$IPKG_INSTROOT/etc/rc.d/K${STOP}${name##K[0-9][0-9]}" && \
52 err=0
53 return $err
54 }
55
56 enabled() {
57 name="$(basename "${initscript}")"
58 [ -x "$IPKG_INSTROOT/etc/rc.d/S${START}${name##S[0-9][0-9]}" ]
59 }
60
61 depends() {
62 return 0
63 }
64
65 help() {
66 cat <<EOF
67 Syntax: $initscript [command]
68
69 Available commands:
70 start Start the service
71 stop Stop the service
72 restart Restart the service
73 reload Reload configuration files (or restart if service does not implement reload)
74 enable Enable service autostart
75 disable Disable service autostart
76 $EXTRA_HELP
77 EOF
78 }
79
80 # for procd
81 start_service() {
82 return 0
83 }
84
85 stop_service() {
86 return 0
87 }
88
89 service_triggers() {
90 return 0
91 }
92
93 service_data() {
94 return 0
95 }
96
97 service_running() {
98 local service="${1:-$(basename $initscript)}"
99 local instance="${2:-*}"
100 procd_running "$service" "$instance" "$@"
101 }
102
103 ${INIT_TRACE:+set -x}
104
105 . "$initscript"
106
107 [ -n "$USE_PROCD" ] && {
108 EXTRA_COMMANDS="${EXTRA_COMMANDS} running status trace"
109 EXTRA_HELP="\
110 running Check if service is running
111 status Service status
112 ${EXTRA_HELP}"
113
114 . $IPKG_INSTROOT/lib/functions/procd.sh
115 basescript=$(readlink "$initscript")
116 rc_procd() {
117 local method="set"
118 [ -n "$2" ] && method="add"
119 procd_open_service "$(basename ${basescript:-$initscript})" "$initscript"
120 "$@"
121 procd_close_service "$method"
122 }
123
124 start() {
125 rc_procd start_service "$@"
126 if eval "type service_started" 2>/dev/null >/dev/null; then
127 service_started
128 fi
129 }
130
131 trace() {
132 TRACE_SYSCALLS=1
133 start "$@"
134 }
135
136 stop() {
137 procd_lock
138 stop_service "$@"
139 procd_kill "$(basename ${basescript:-$initscript})" "$1"
140 if eval "type service_stopped" 2>/dev/null >/dev/null; then
141 service_stopped
142 fi
143 }
144
145 reload() {
146 if eval "type reload_service" 2>/dev/null >/dev/null; then
147 procd_lock
148 reload_service "$@"
149 else
150 start
151 fi
152 }
153
154 running() {
155 service_running "$@"
156 }
157
158 status() {
159 if eval "type status_service" 2>/dev/null >/dev/null; then
160 status_service "$@"
161 else
162 _procd_status "$(basename ${basescript:-$initscript})" "$1"
163 fi
164 }
165 }
166
167 ALL_COMMANDS="start stop reload restart boot shutdown enable disable enabled depends ${EXTRA_COMMANDS}"
168 list_contains ALL_COMMANDS "$action" || action=help
169 $action "$@"