make links to statup scripts in /etc/rc.d relative
[openwrt.git] / package / base-files / files / etc / rc.common
1 #!/bin/sh
2 # Copyright (C) 2006 OpenWrt.org
3
4 . $IPKG_INSTROOT/etc/functions.sh
5
6 start() {
7         return 0
8 }
9
10 stop() {
11         return 0
12 }
13
14 reload() {
15         return 1
16 }
17
18 restart() {
19         trap '' TERM
20         stop "$@"
21         start "$@"
22 }
23
24 boot() {
25         start "$@"
26 }
27
28 shutdown() {
29         return 0
30 }
31
32 disable() {
33         name="$(basename "${initscript}")"
34         rm -f "$IPKG_INSTROOT"/etc/rc.d/S??$name
35         rm -f "$IPKG_INSTROOT"/etc/rc.d/K??$name
36 }
37
38 enable() {
39         name="$(basename "${initscript}")"
40         disable
41         [ "$START" ] && ln -s "../init.d/$name" "$IPKG_INSTROOT/etc/rc.d/S${START}${name##S[0-9][0-9]}"
42         [ "$STOP"  ] && ln -s "../init.d/$name" "$IPKG_INSTROOT/etc/rc.d/K${STOP}${name##K[0-9][0-9]}"
43 }
44
45 enabled() {
46         name="$(basename "${initscript}")"
47         [ -x "$IPKG_INSTROOT/etc/rc.d/S${START}${name##S[0-9][0-9]}" ]
48 }
49
50 depends() {
51         return 0
52 }
53
54 help() {
55         cat <<EOF
56 Syntax: $initscript [command]
57
58 Available commands:
59         start   Start the service
60         stop    Stop the service
61         restart Restart the service
62         reload  Reload configuration files (or restart if that fails)
63         enable  Enable service autostart
64         disable Disable service autostart
65 $EXTRA_HELP
66 EOF
67 }
68
69 initscript="$1"
70 [ "$#" -ge 1 ] && shift
71 action="$1"
72 [ "$#" -ge 1 ] && shift
73
74 . "$initscript"
75
76 cmds=
77 for cmd in $EXTRA_COMMANDS; do
78         cmds="${cmds:+$cmds$N}$cmd) $cmd \"\$@\";;"
79 done
80 eval "case \"\$action\" in
81         start) start \"\$@\";;
82         stop) stop \"\$@\";;
83         reload) reload \"\$@\" || restart \"\$@\";;
84         restart) restart \"\$@\";;
85         boot) boot \"\$@\";;
86         shutdown) shutdown \"\$@\";;
87         enable) enable \"\$@\";;
88         enabled) enabled \"\$@\";;
89         disable) disable \"\$@\";;
90         $cmds
91         *) help;;
92 esac"