Date: Thu, 20 Feb 2003 19:16:29 -0800 (PST) From: Julian Elischer <julian@elischer.org> To: John De Boskey <jwd@bsdwins.com> Cc: FreeBSD current users <current@FreeBSD.ORG> Subject: Re: config files and includes. Message-ID: <Pine.BSF.4.21.0302201906540.43932-100000@InterJet.elischer.org> In-Reply-To: <20030221030419.GA89373@BSDWins.Com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, 20 Feb 2003, John De Boskey wrote: > ----- Julian Elischer's Original Message ----- > > > > I have just gone through the process of upgrading or installing several > > hundred machines, and Thst includes altering or editing many config > > files in /etc. I like the way that rc.conf > > is handled, in that defaults/rc.comf can be updated and only the > > local changes live in r.conf. I wish that more files had this > > capability. > > This is not exactly what you are asking for, but this is from > a petty much a been-there/done-that many years ago. Typing in > the logic from memory: > > rcfiles="/etc/inetd.conf /etc/syslog.conf /etc/newsyslog.conf" > > for rcf in $rcfiles; do > if [ -f ${rcf}.local ]; then > if [ ! -f ${rcf}.base ]; then > if diff ${rcf} ${rcf}.base > /dev/null; then > cp -p ${rcf} ${rcf}.base > fi > fi > cat ${rcf}.base ${rcf}.local > ${rcf} > fi > done > > I think you can get the idea. yeah but we don't distribute our files like that.. you get a new syslogd.conf when you upgrade, not a syslogd.conf.base (unfortunartly) I considered this possibilty. especially as many daemons etc. have an argument that they can take for a config file, and the argument is often changeable from rc.conf. e.g. . /usr/local/concatfiles syslogd_flags="-s -f/etc/syslogd.local" [...] where /usr/local/concatfiles does: cat /etc/syslogd.conf /usr/local/etc/syslogd.conf >/etc/syslogd.local or in some cases: if ! grep -q "already patched" etc/login.conf.diff patch </usr/local/etc/login.conf.diff Unfortunatly each case requires a seprate aproach. julian > > -John > > > For example syslogd.conf or newsyslog.conf are updated between releases > > but they are also prime candidates for local additions. > > What would be really cool is if more config files could > > do 'includes' so that you could have a syslogd.local.conf > > wher eall your local entries could be. In addition you could make it > > look in /usr/local/etc/syslogd.conf for loging requirments for > > packages. > > > > To do this for every config file would be a lot of work. I do wonder > > however whether there couldn't be some "config-file reader" library > > routine that could be used to pre-pass files and do inclusions.. > > > > if the interface was very similar to what is usually used > > (people tend to either use open/read/close or > > fopen/fscanf (etc). > > > > equivalent calls could be made that use a stream of data that is > > pre-processed to do inclusions etc. That would making retrofitting > > relatively easy. Programs that use yacc/lex ar emore difficult, > > but I haven't looked into it.. > > > > anyhow, that was just a thought. > > > > > > To Unsubscribe: send mail to majordomo@FreeBSD.org > > with "unsubscribe freebsd-current" in the body of the message > > -- > -- > As said by Napolean Bonaparte: > "Never ascribe to malice, that which is adequately explained by incompetence" > > After being embraced by MS: > > "When accused of malice, always hide behind incompetence". > 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?Pine.BSF.4.21.0302201906540.43932-100000>