[patch] rc.d cleanup

John Baldwin jhb at FreeBSD.org
Mon Aug 1 17:56:06 GMT 2005


On Monday 01 August 2005 01:29 pm, diz at linuxpowered.com wrote:
> Hi there,
>
> This is my first patch to this project.
> This is the first of many patches to come actually, but I need to find a
> sponsor to guide me, and review what I submit. The patch is kinda big, and
> far reaching in terms of altering almost every rc.d script.
>
> This patch effects most of the rc.d scripts that utilize simple IF
> statements, converting them to logical AND/OR's instead. For example:
>
> if [ ! -f foo ]
> then
>     bar
> fi
>
> Would simply become:
>
> [ -f foo ] || bar
>
> The exception (but not the rule) is for any situation where ELIF/ELSE is
> required. In other words any exclusive conditional situations.
>
> I also applied this notion to many simple blocks of code wrapped around
> non-exclusive IF statements, such as:
>
> [ -f foo ] && {
>    command-list
>    [...]
> }
>
> This has the result of reducing the size of the shell code, and reducing
> the problem of over-engineering that plagues many scripts. I found quite
> many places where there were one-line situations wrapped up in multi-line
> IF statements, which I was compelled to eliminate. Further more, as I
> audited the scripts, I noticed that in several places this style of
> scripting was already used in various places. So I feel this make the
> entire span of scripts uniform.
>
>
> -Jon Disnard

The argument I would have against this is that it is a lot easier to read the 
'if foo; then ; fi' style, esp. for folks used to using C, etc.  Shell 
scripts don't need to be overly obfuscated.

-- 
John Baldwin <jhb at FreeBSD.org>  <><  http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve"  =  http://www.FreeBSD.org


More information about the freebsd-hackers mailing list