Vadim Zhukov <[email protected]> wrote:

>Third iteration, after input from ajacoutot@, todd@ and marc@.
>
>Now rc_restart becomes unavailable if either start or stop is disabled.
>
>
>Index: rc.subr
>===================================================================
>RCS file: /cvs/src/etc/rc.d/rc.subr,v
>retrieving revision 1.68
>diff -u -p -r1.68 rc.subr
>--- rc.subr    19 Nov 2012 07:10:59 -0000      1.68
>+++ rc.subr    3 Apr 2013 17:55:00 -0000
>@@ -24,8 +24,18 @@ rc_err() {
>       exit 1
> }
> 
>+rc_is_supported() {
>+      local _enotsup
>+      eval _enotsup=\${rc_${1}}

${1} just hurts my eyes too much... :-)

Bikeshedding my way. Tin roof.

/A

>+      [ X"${_enotsup}" != X"NO" ]
>+}
>+
> rc_usage() {
>-      rc_err "usage: $0 [-df] {start|check|reload|restart|stop}"
>+      local _a _allsup
>+      for _a in start stop restart reload check; do
>+              rc_is_supported ${_a} && _allsup="${_allsup:+$_allsup|}${_a}"
>+      done
>+      rc_err "usage: $0 [-df] (${_allsup})"
> }
> 
> rc_write_runfile() {
>@@ -95,14 +105,17 @@ rc_wait() {
> }
> 
> rc_cmd() {
>-      local _bg _enotsup _n
>+      local _bg _n
> 
>       [ "$(id -u)" -eq 0 ] || \
>               [ X"${rc_usercheck}" != X"NO" -a X"$1" = "Xcheck" ] || \
>               rc_err "$0: need root privileges"
> 
>-      eval _enotsup=\${rc_${1}}
>-      if [ X"${_enotsup}" = X"NO" ]; then
>+      if ! (rc_is_supported start && rc_is_supported stop); then
>+              rc_restart=NO
>+      fi
>+
>+      if ! rc_is_supported $1; then
>               [ -n "${INRC}" ] && exit 1
>               rc_err "$0: $1 is not supported"
>       fi

Reply via email to