In current state, if there is STOP but no START, enbale()
will return 0 (success), which is wrong.
Moreover there is no need to check for START/STOP twice.
Instead, add err variable to save success state and
and return it's value.
Also eliminate the need to disable() by using 'ln -sf',
which will first delete the old symlink if one exists.

Signed-off-by: Roman Yeryomin <ro...@advem.lv>
---
 package/base-files/files/etc/rc.common | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)

diff --git a/package/base-files/files/etc/rc.common 
b/package/base-files/files/etc/rc.common
index a2ea6a5679..a08c1f8f48 100755
--- a/package/base-files/files/etc/rc.common
+++ b/package/base-files/files/etc/rc.common
@@ -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() {
-- 
2.14.1


_______________________________________________
Lede-dev mailing list
Lede-dev@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/lede-dev

Reply via email to