[arch-projects] [initscripts][PATCH] rc: exit with error count, not error sum

Dave Reisner d at falconindy.com
Sun Apr 24 18:28:02 EDT 2011


On Mon, Apr 25, 2011 at 12:07:07AM +0200, Seblu wrote:
> On Sun, Apr 24, 2011 at 11:42 PM, Dave Reisner <d at falconindy.com> wrote:
> > cc199761f assumes that /etc/rc.d scripts will exit with a value of 0 or
> > 1. Since this can't be guaranteed, clamp the return value to 0 or 1
> > before adding it to the exit value.
> > ---
> >  rc |    2 +-
> >  1 files changed, 1 insertions(+), 1 deletions(-)
> >
> > diff --git a/rc b/rc
> > index 1e64119..54dc11c 100755
> > --- a/rc
> > +++ b/rc
> > @@ -45,7 +45,7 @@ case $1 in
> >                shift
> >                for i; do
> >                        [[ -x "/etc/rc.d/$i" ]] && "/etc/rc.d/$i" $action
> > -                       (( ret += $? ))
> > +                       (( ret += !! $? ))  # clamp exit value to 0/1
> >                done
> 
> why doen't increment ret each time a non zero value is detected? This
> is simpler no?
> 
> (($?)) || ((ret++) ?
> 
> 

Well, it'd be && instead of ||, but this is the first thing that came to
mine (using an old C idiom). It's 6 of one, a half dozen of another.

Also, I just noticed that this increments the exit value when the [[ -x
check fails, but I think I'm okay with that.

d



More information about the arch-projects mailing list