diff options
author | Roman Yeryomin <roman@advem.lv> | 2017-12-22 13:04:46 +0200 |
---|---|---|
committer | John Crispin <john@phrozen.org> | 2018-01-02 07:14:08 +0100 |
commit | 0b1fa809d0e974398503a24e408c1209969711f7 (patch) | |
tree | 9599b1c58819bfacdd7b6e4242459c2c05c8cb7f /package/base-files/files/etc | |
parent | b153745bfbefc6617db0f63e6c80fde7e1e96e7e (diff) | |
download | upstream-0b1fa809d0e974398503a24e408c1209969711f7.tar.gz upstream-0b1fa809d0e974398503a24e408c1209969711f7.tar.bz2 upstream-0b1fa809d0e974398503a24e408c1209969711f7.zip |
base-files: rc.common: fix enable() return code and logic
In current state, if there is START but no STOP, enbale()
will return 1 (failure), 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.
Changes from v1:
- fixed description
Signed-off-by: Roman Yeryomin <roman@advem.lv>
Diffstat (limited to 'package/base-files/files/etc')
-rwxr-xr-x | package/base-files/files/etc/rc.common | 15 |
1 files 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() { |