Skip site navigation (1)Skip section navigation (2)
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>