base-files: fix rc.common help alignment
[openwrt/staging/mkresin.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 EXTRA_HELP=""
66 EXTRA_COMMANDS="boot shutdown depends"
67 extra_command() {
68 local cmd="$1"
69 local help="$2"
70
71 local extra="$(printf "%-16s%s" "${cmd}" "${help}")"
72 EXTRA_HELP="${EXTRA_HELP}\t${extra}\n"
73 EXTRA_COMMANDS="${EXTRA_COMMANDS} ${cmd}"
74 }
75
76 help() {
77 cat <<EOF
78 Syntax: $initscript [command]
79
80 Available commands:
81 EOF
82 echo -e "$EXTRA_HELP"
83 }
84
85 # for procd
86 start_service() {
87 return 0
88 }
89
90 stop_service() {
91 return 0
92 }
93
94 service_triggers() {
95 return 0
96 }
97
98 service_data() {
99 return 0
100 }
101
102 service_running() {
103 local service="${1:-$(basename $initscript)}"
104 local instance="${2:-*}"
105 procd_running "$service" "$instance" "$@"
106 }
107
108 ${INIT_TRACE:+set -x}
109
110 extra_command "start" "Start the service"
111 extra_command "stop" "Stop the service"
112 extra_command "restart" "Restart the service"
113 extra_command "reload" "Reload configuration files (or restart if service does not implement reload)"
114 extra_command "enable" "Enable service autostart"
115 extra_command "disable" "Disable service autostart"
116 extra_command "enabled" "Check if service is started on boot"
117
118 . "$initscript"
119
120 [ -n "$USE_PROCD" ] && {
121 extra_command "running" "Check if service is running"
122 extra_command "status" "Service status"
123 extra_command "trace" "Start with syscall trace"
124
125 . $IPKG_INSTROOT/lib/functions/procd.sh
126 basescript=$(readlink "$initscript")
127 rc_procd() {
128 local method="set"
129 [ -n "$2" ] && method="add"
130 procd_open_service "$(basename ${basescript:-$initscript})" "$initscript"
131 "$@"
132 procd_close_service "$method"
133 }
134
135 start() {
136 rc_procd start_service "$@"
137 if eval "type service_started" 2>/dev/null >/dev/null; then
138 service_started
139 fi
140 }
141
142 trace() {
143 TRACE_SYSCALLS=1
144 start "$@"
145 }
146
147 stop() {
148 procd_lock
149 stop_service "$@"
150 procd_kill "$(basename ${basescript:-$initscript})" "$1"
151 if eval "type service_stopped" 2>/dev/null >/dev/null; then
152 service_stopped
153 fi
154 }
155
156 reload() {
157 if eval "type reload_service" 2>/dev/null >/dev/null; then
158 procd_lock
159 reload_service "$@"
160 else
161 start
162 fi
163 }
164
165 running() {
166 service_running "$@"
167 }
168
169 status() {
170 if eval "type status_service" 2>/dev/null >/dev/null; then
171 status_service "$@"
172 else
173 _procd_status "$(basename ${basescript:-$initscript})" "$1"
174 fi
175 }
176 }
177
178 ALL_COMMANDS="${EXTRA_COMMANDS}"
179 list_contains ALL_COMMANDS "$action" || action=help
180 $action "$@"