Once upon a time, before I knew better, I copied defaults/rc.conf to
rc.conf and edited it to my needs.
Therefore I had many lines in rc.conf which were unnessecary, because
they just repeated the defaults.
I have thrown together this script, which just outputs the needed lines
in rc.conf.
If VERBOSE is set, it also prints
##= Is default: Somelabel="somevalue"
if rc.conf and defaults/rc.conf agree on the value of Somelabel
##- Default: Somelabel="defaultvalue"
if rc.conf and defaults/rc.conf disagree on the value of Somelabel.
Btw, why can't I run this as a bang-script?
Typing ./defcheck just produces:
awk: cmd. line 1: ./defcheck
awk: cmd. line 1: ^ syntax error
- - - - filename: defcheck
#!/usr/bin/awk
########################################################
#
# Quick hack to check if rc.conf unnessecary duplicate
# lines in defaults/rc.conf
#
# Assume all lines are in format label="value"
#
# Prints lines in rc.conf which are not in defaults/rc.conf
# If VERBOSE==1 below, also prints defaults.
#
# usage:
# cd /etc; awk -f defcheck
#
# Other files in defaults may be checked:
# cd /etc; awk -f defcheck -v CHECK=otherfile.conf
#
# Leif Neland
# [EMAIL PROTECTED]
# 25.marts.2001
#
BEGIN {
if (CHECK=="") {
CHECK="rc.conf"
}
VERBOSE=0;
### Read defaults into array
DEFAULT="defaults/"CHECK;
FS="#";
while (getline <DEFAULT >0) {
m=split($1,a,"\"");
if (m==3) {linie[sprintf("%s\"%s\"",a[1],a[2])]=1;
default[a[1]]=a[2];}
}
######################################################
while (getline <CHECK >0)
{
flag=1;
m=split($1,a,"\"");
if (m==3) {l=sprintf("%s\"%s\"",a[1],a[2]);
if (l in linie) {
if (VERBOSE) print "##= Is default: ",l;
flag=0;
} else {
if (VERBOSE && a[1] in default) {print "##- Default "a[1]"\""default[a[1]]"\""};
}
}
if (flag) {print};
}
}
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message