[RFC][Change-Request] Create usefulness in rc.subr
etc/rc.conf.d/*.conf namespace.
Jason Hellenthal
jhell at DataIX.net
Mon May 9 01:49:46 UTC 2011
Devin,
On Sun, May 08, 2011 at 05:57:05PM -0700, Devin Teske wrote:
>
> On May 8, 2011, at 5:23 PM, Jason Hellenthal wrote:
>
> >
> > Devin,
> >
> > On Sun, May 08, 2011 at 03:52:06PM -0700, Devin Teske wrote:
> >>
> >> I second Jilles all-builtin solution using `for' globbing (no forking external processes or sub-shells).
> >>
> >> Slight modification for brevity:
> >>
> >> for _modular_conf in /etc/rc.conf.d/*.conf; do
> >> [ -f "$_modular_conf" -a -x "$_modular_conf" ] || continue
> >> debug "Sourcing $_modular_conf"
> >> . "$_modular_conf"
> >> done
> >>
> >> Though I still think it ought to be:
> >>
> >> for _modular_conf in /etc/rc.conf.d/*.conf; do
> >> [ -f "$_modular_conf" ] || continue
> >> debug "Sourcing $_modular_conf"
> >> . "$_modular_conf"
> >> done
> >>
> >
> > Keeping with the examples of the rest of the style of rc.subr and plenty
> > of other shell scripts here. This would be a distortion of the
> > functionality that the original loop is doing and should be avoided.
> >
>
> I've picked up this tid-bit over the years:
>
> 1. Since a conditional block causes all code within to be indented...
> 2. if you have a condition which can cause a continuance within a looping bock...
> 3. utilizing said conditional early-on can prevent unnecessary indentation in the following lines.
>
> It's kind of moot for such a small example, but if you get to nesting 300+ lines at multiple levels of nesting then it's worth re-evaluating the use of "early continuances".
>
> Here's the basic idea...
>
> for item in list; do
> : condition to continue
> : what the loop does
> done
>
> opposed to:
>
> for item in list; do
> if : condition to not continue; then
> : what the loop does
> fi
> done
>
> How about this half-and-half approach (actual code):
>
> for _modular_conf in /etc/rc.conf.d/*.conf; do
> if [ ! -f "$_modular_conf" ]; then
> continue
> fi
> debug "Sourcing $_modular_conf"
> . "$_modular_conf"
> done
>
> Of course, one's interpretation of the above syntax is conditional on memorizing that "!" is pronounced "not" (just as my previous syntax hinges on memorizing that "||" is pronounced "or"/"else" -- allowing either syntax to be read/interpreted with ease).
>
> Just thought I'd share my experiences. Not everyone develops the same style(9) for every language.
Yeah Yeah! I agree its a very valid point but that is only about indenting
for the most part. There isnt really a need for varience from the style
that is already in the script ;)
Ill do the same type of things depending on the situation. I have also
been known to stretch the very fabric of time and space just to fit a
conditional statement to match style. ;) Think I am a little ADHD in the
sense that I am very picky about stuff matching.
--
Regards, (jhell)
Jason Hellenthal
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 522 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-rc/attachments/20110509/8fc50451/attachment.pgp
More information about the freebsd-rc
mailing list