init script cleanup, use /etc/rc.d/ for enabled scripts, /etc/init.d/<pkgname> (enabl...
[openwrt/svn-archive/archive.git] / package / base-files / default / etc / rc.common
index 20d1efa402bcd382c6a72b0b9608cf474a94f942..a08f5e523c622f4373763a3173cf88d1be36f1b0 100755 (executable)
@@ -1,5 +1,9 @@
 #!/bin/sh
 #!/bin/sh
-. /etc/functions.sh
+# Copyright (C) 2006 OpenWrt.org
+
+. $IPKG_INSTROOT/etc/functions.sh
+
+START=50
 
 start() {
        return 0
 
 start() {
        return 0
@@ -27,12 +31,14 @@ shutdown() {
 }
 
 disable() {
 }
 
 disable() {
-       rm -f /etc/rc.d/${initscript##*/}
+       name="$(basename "${initscript}")"
+       rm -f "$IPKG_INSTROOT/etc/rc.d/S??$name"
 }
 
 enable() {
 }
 
 enable() {
+       name="$(basename "${initscript}")"
        disable
        disable
-       ln -s /etc/init.d/${initscript##*/} /etc/rc.d/${initscript##*/}
+       ln -s "/etc/init.d/$name" "$IPKG_INSTROOT/etc/rc.d/S${START}${name##S[0-9][0-9]}"
 }
 
 depends() {
 }
 
 depends() {
@@ -48,6 +54,8 @@ Available commands:
        stop    Stop the service
        restart Restart the service
        reload  Reload configuration files (or restart if that fails)
        stop    Stop the service
        restart Restart the service
        reload  Reload configuration files (or restart if that fails)
+       enable  Enable service autostart
+       disable Disable service autostart
 $EXTRA_HELP
 EOF
 }
 $EXTRA_HELP
 EOF
 }
@@ -68,6 +76,8 @@ eval "case \"\$action\" in
        restart) restart;;
        boot) boot;;
        shutdown) shutdown;;
        restart) restart;;
        boot) boot;;
        shutdown) shutdown;;
+       enable) enable;;
+       disable) disable;;
        $cmds
        *) help;;
 esac"
        $cmds
        *) help;;
 esac"