Date: Sun, 8 May 2011 21:49:39 -0400 From: Jason Hellenthal <jhell@DataIX.net> To: Devin Teske <dteske@vicor.com> Cc: Garrett Cooper <yanegomi@gmail.com>, freebsd-rc@freebsd.org Subject: Re: [RFC][Change-Request] Create usefulness in rc.subr etc/rc.conf.d/*.conf namespace. Message-ID: <20110509014939.GK3527@DataIX.net> In-Reply-To: <2E9FCA3F-79B7-4FE8-883E-EA1D45EECE56@vicor.com> References: <20110508191336.GC3527@DataIX.net> <C7EC90A2-936C-44E1-BC5E-E249399AF9AB@gmail.com> <5474DF9C-500A-4B51-948F-F56A66051476@vicor.com> <20110508215432.GG3527@DataIX.net> <F7C06E06-1913-4D29-B37F-7B07A0AE121A@vicor.com> <D0B755B8-B222-49F4-BC6D-545231B7384A@vicor.com> <20110509002349.GI3527@DataIX.net> <2E9FCA3F-79B7-4FE8-883E-EA1D45EECE56@vicor.com>
next in thread | previous in thread | raw e-mail | index | archive | help
--boAH8PqvUi1v1f55 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Devin, On Sun, May 08, 2011 at 05:57:05PM -0700, Devin Teske wrote: >=20 > On May 8, 2011, at 5:23 PM, Jason Hellenthal wrote: >=20 > >=20 > > Devin, > >=20 > > On Sun, May 08, 2011 at 03:52:06PM -0700, Devin Teske wrote: > >>=20 > >> I second Jilles all-builtin solution using `for' globbing (no forking = external processes or sub-shells). > >>=20 > >> Slight modification for brevity: > >>=20 > >> 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 > >>=20 > >> Though I still think it ought to be: > >>=20 > >> for _modular_conf in /etc/rc.conf.d/*.conf; do > >> [ -f "$_modular_conf" ] || continue > >> debug "Sourcing $_modular_conf" > >> . "$_modular_conf" > >> done > >>=20 > >=20 > > Keeping with the examples of the rest of the style of rc.subr and plent= y=20 > > of other shell scripts here. This would be a distortion of the=20 > > functionality that the original loop is doing and should be avoided. > >=20 >=20 > I've picked up this tid-bit over the years: >=20 > 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 indentatio= n in the following lines. >=20 > 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". >=20 > Here's the basic idea... >=20 > for item in list; do > : condition to continue > : what the loop does > done >=20 > opposed to: >=20 > for item in list; do > if : condition to not continue; then > : what the loop does > fi > done >=20 > How about this half-and-half approach (actual code): >=20 > for _modular_conf in /etc/rc.conf.d/*.conf; do > if [ ! -f "$_modular_conf" ]; then > continue > fi > debug "Sourcing $_modular_conf" > . "$_modular_conf" > done >=20 > Of course, one's interpretation of the above syntax is conditional on mem= orizing 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). >=20 > Just thought I'd share my experiences. Not everyone develops the same sty= le(9) for every language. Yeah Yeah! I agree its a very valid point but that is only about indenting= =20 for the most part. There isnt really a need for varience from the style=20 that is already in the script ;) Ill do the same type of things depending on the situation. I have also=20 been known to stretch the very fabric of time and space just to fit a=20 conditional statement to match style. ;) Think I am a little ADHD in the=20 sense that I am very picky about stuff matching. --=20 Regards, (jhell) Jason Hellenthal --boAH8PqvUi1v1f55 Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.17 (FreeBSD) Comment: http://bit.ly/0x89D8547E iQEcBAEBAgAGBQJNx0gzAAoJEJBXh4mJ2FR+A34H/0sNU6MrngqH3sV/jAm8iXGD dI/lnD5THG5s8lx7BO39S8gwFu6Hrx5ac2Lylow6xmrE4h+iVJt+ej2835lzGjnl Z7UrJPPm/8jI89Vz8sbhl7LEluahth+sYbMl9lnVrRE489l/u7qakC5bUS0MvHcj hHXIM2fWfiVBc5SNzLdgxHdrm64/zR8y0LC+4H/EQyuGahi9/Q3+HxQALE1CETJS P5+qWIQDZky37GXcuE6Luq0egMvY/9UyC9Ym+ajO/p8zwg7zi2UcrQos73cZP0Fe VMiLdiai8tL578hkzCOsbEIf9MZS2AxMKnjSnw83oAsx9xKR3lVGjcemitt/Cqg= =4uMH -----END PGP SIGNATURE----- --boAH8PqvUi1v1f55--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20110509014939.GK3527>