base-files: rc.common: fix enable() return code and logic
[openwrt/.git] / package / base-files / files / etc / rc.common
index a2ea6a5679aebc196937778d12d13271a8c764ef..a08c1f8f486eca7e7f1a29c90e4e9cfcf36ad633 100755 (executable)
@@ -41,14 +41,15 @@ disable() {
 }
 
 enable() {
+       err=1
        name="$(basename "${initscript}")"
-       disable
-       [ -n "$START" -o -n "$STOP" ] || {
-               echo "/etc/init.d/$name does not have a START or STOP value"
-               return 1
-       }
-       [ "$START" ] && ln -s "../init.d/$name" "$IPKG_INSTROOT/etc/rc.d/S${START}${name##S[0-9][0-9]}"
-       [ "$STOP"  ] && ln -s "../init.d/$name" "$IPKG_INSTROOT/etc/rc.d/K${STOP}${name##K[0-9][0-9]}"
+       [ "$START" ] && \
+               ln -sf "../init.d/$name" "$IPKG_INSTROOT/etc/rc.d/S${START}${name##S[0-9][0-9]}" && \
+               err=0
+       [ "$STOP" ] && \
+               ln -sf "../init.d/$name" "$IPKG_INSTROOT/etc/rc.d/K${STOP}${name##K[0-9][0-9]}" && \
+               err=0
+       return $err
 }
 
 enabled() {