Date: Mon, 22 Mar 1999 18:10:14 +0900 From: "Daniel C. Sobral" <dcs@newsguy.com> To: "Jordan K. Hubbard" <jkh@zippy.cdrom.com>, current@freebsd.org Subject: Re: /etc/rc.conf, take 46! Message-ID: <36F608F6.1F2C1160@newsguy.com> References: <39218.922068401@zippy.cdrom.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Forget about code in rc.conf. Put the logic in the the scripts. Or, better, put the logic in rc.suck (well, find a better name... :), and . /etc/rc.suck instead. "Jordan K. Hubbard" wrote: > > OK, so it seems everyone's found something to like and dislike about > the new scheme. In that regard, it seems pretty much equivalent to > the previous layout when that was first introduced. :) > > However, incremental refinement for this stuff has always been the > order of the day, so in that spirit, here's my proposal to deal with > the most recent set of gripes: That rc.conf contains "code" in > addition to data. > > The following diffs make rc.conf a variable-only file, at the cost of > distributing the hook-calling mechanism into all the former clients of > rc.conf. That really doesn't bother me if it doesn't bother you, and > further optimization of it can always be another future incremental > refinement. Another incremental, albeit contraversial, refinement > would be to change /etc/defaults/rc.conf and friends into something > truely machine-parsable, changing statements like this: > > if [ -f /some/conf/file ]; then > . /some/conf/file > fi > > Into something like this: > > if [ -f /some/conf/file ]; then > eval `/sbin/rcvtosh /some/conf/file` > fi > > But these changes do not attempt to do that, they simply attempt to > make the existing rc.conf format somewhat easier to parse. Comments > requested. > > Index: netstart > =================================================================== > RCS file: /home/ncvs/src/etc/netstart,v > retrieving revision 1.53 > diff -u -u -r1.53 netstart > --- netstart 1999/02/10 18:08:16 1.53 > +++ netstart 1999/03/22 01:54:16 > @@ -12,8 +12,11 @@ > # If there is a global system configuration file, suck it in. > if [ -f /etc/defaults/rc.conf ]; then > . /etc/defaults/rc.conf > -elif [ -f /etc/rc.conf ]; then > - . /etc/rc.conf > + for i in ${rc_conf_files}; do > + if [ -f $i ]; then > + . $i > + fi > + done > fi > > if [ -f /etc/rc.network ]; then > Index: pccard_ether > =================================================================== > RCS file: /home/ncvs/src/etc/pccard_ether,v > retrieving revision 1.11 > diff -u -u -r1.11 pccard_ether > --- pccard_ether 1999/02/22 02:55:18 1.11 > +++ pccard_ether 1999/03/22 01:55:27 > @@ -7,11 +7,14 @@ > # example: pccard_ether ep0 -link0 > # > > -# Suck in the configuration variables > +# If there is a global system configuration file, suck it in. > if [ -f /etc/defaults/rc.conf ]; then > . /etc/defaults/rc.conf > -elif [ -f /etc/rc.conf ]; then > - . /etc/rc.conf > + for i in ${rc_conf_files}; do > + if [ -f $i ]; then > + . $i > + fi > + done > fi > > if [ "x$pccard_ifconfig" != "xNO" ] ; then > Index: rc > =================================================================== > RCS file: /home/ncvs/src/etc/rc,v > retrieving revision 1.183 > diff -u -u -r1.183 rc > --- rc 1999/03/17 04:00:04 1.183 > +++ rc 1999/03/22 01:56:24 > @@ -33,11 +33,13 @@ > fi > > # If there is a global system configuration file, suck it in. > -# > if [ -f /etc/defaults/rc.conf ]; then > . /etc/defaults/rc.conf > -elif [ -f /etc/rc.conf ]; then > - . /etc/rc.conf > + for i in ${rc_conf_files}; do > + if [ -f $i ]; then > + . $i > + fi > + done > fi > > # Configure ccd devices. > Index: rc.devfs > =================================================================== > RCS file: /home/ncvs/src/etc/rc.devfs,v > retrieving revision 1.4 > diff -u -u -r1.4 rc.devfs > --- rc.devfs 1999/02/10 18:08:16 1.4 > +++ rc.devfs 1999/03/22 01:56:39 > @@ -1,11 +1,15 @@ > # > # $Id: rc.devfs,v 1.4 1999/02/10 18:08:16 jkh Exp $ > # > + > # If there is a global system configuration file, suck it in. > if [ -f /etc/defaults/rc.conf ]; then > . /etc/defaults/rc.conf > -elif [ -f /etc/rc.conf ]; then > - . /etc/rc.conf > + for i in ${rc_conf_files}; do > + if [ -f $i ]; then > + . $i > + fi > + done > fi > > # Setup DEVFS, ie permisisons, links etc. > Index: rc.diskless2 > =================================================================== > RCS file: /home/ncvs/src/etc/rc.diskless2,v > retrieving revision 1.2 > diff -u -u -r1.2 rc.diskless2 > --- rc.diskless2 1999/02/10 18:08:16 1.2 > +++ rc.diskless2 1999/03/22 01:57:04 > @@ -2,11 +2,13 @@ > # > > # If there is a global system configuration file, suck it in. > -# > if [ -f /etc/defaults/rc.conf ]; then > . /etc/defaults/rc.conf > -elif [ -f /etc/rc.conf ]; then > - . /etc/rc.conf > + for i in ${rc_conf_files}; do > + if [ -f $i ]; then > + . $i > + fi > + done > fi > > mount_mfs -s ${var_run_sectors:=2048} -T qp120at dummy /var/run > Index: rc.firewall > =================================================================== > RCS file: /home/ncvs/src/etc/rc.firewall,v > retrieving revision 1.20 > diff -u -u -r1.20 rc.firewall > --- rc.firewall 1999/02/10 18:08:16 1.20 > +++ rc.firewall 1999/03/22 01:57:16 > @@ -2,11 +2,14 @@ > # Setup system for firewall service. > # $Id: rc.firewall,v 1.20 1999/02/10 18:08:16 jkh Exp $ > > -# Suck in the configuration variables. > +# If there is a global system configuration file, suck it in. > if [ -f /etc/defaults/rc.conf ]; then > . /etc/defaults/rc.conf > -elif [ -f /etc/rc.conf ]; then > - . /etc/rc.conf > + for i in ${rc_conf_files}; do > + if [ -f $i ]; then > + . $i > + fi > + done > fi > > ############ > Index: defaults/rc.conf > =================================================================== > RCS file: /home/ncvs/src/etc/defaults/rc.conf,v > retrieving revision 1.4 > diff -u -u -r1.4 rc.conf > --- rc.conf 1999/03/17 04:00:04 1.4 > +++ rc.conf 1999/03/22 01:58:02 > @@ -202,16 +202,3 @@ > kern_securelevel="-1" # range: -1..3 ; `-1' is the most insecure > update_motd="YES" # update version info in /etc/motd (or NO) > vinum_drives="" # put in names of disks containing vinum drives > - > -############################################################## > -### Allow local configuration override at the very end here ## > -############################################################## > -# > -# > - > -for i in ${rc_conf_files}; do > - if [ -f $i ]; then > - . $i > - fi > -done > - > > To Unsubscribe: send mail to majordomo@FreeBSD.org > with "unsubscribe freebsd-current" in the body of the message -- Daniel C. Sobral (8-DCS) dcs@newsguy.com dcs@freebsd.org "What happened?" "It moved, sir!" To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?36F608F6.1F2C1160>