[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