62 lines
1.6 KiB
Plaintext
62 lines
1.6 KiB
Plaintext
|
#!/usr/bin/perl
|
||
|
|
||
|
# Extract parameter definitions from the sample-mumble.cf files in
|
||
|
# order to build the postconf raw data file from which everything
|
||
|
# will be regenerated.
|
||
|
|
||
|
$POSTCONF="postconf";
|
||
|
|
||
|
# Suck in the parameter definition text. Skip non-parameter blocks.
|
||
|
# Strip all but the body text (i.e. strip off the non-comment line
|
||
|
# that shows the default, since we will use postconf output to supply
|
||
|
# the actual values).
|
||
|
|
||
|
while(<>) {
|
||
|
if (/^[^#]/) {
|
||
|
if ($param_name && $saved_text) {
|
||
|
$saved_text =~ s/^(\n|#|\s)+//;
|
||
|
$saved_text =~ s/(\n|#|\s)+$//;
|
||
|
$saved_text =~ s/^# ?/\n/;
|
||
|
$saved_text =~ s/\n# ?/\n/g;
|
||
|
$definition{$param_name} = $saved_text;
|
||
|
$param_name = $saved_text = "";
|
||
|
}
|
||
|
next;
|
||
|
}
|
||
|
if (/^#/ && $param_name) {
|
||
|
$saved_text .= $_;
|
||
|
next;
|
||
|
}
|
||
|
if (/^# The (\S+) (configuration )?parameter/) {
|
||
|
$param_name = $1;
|
||
|
$saved_text = $_;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
# Read all the default parameter values. This also provides us with
|
||
|
# a list of all the parameters that postconf knows about.
|
||
|
|
||
|
open(POSTCONF, "$POSTCONF -d|") || die "cannot run $POSTCONF: !$\n";
|
||
|
while(<POSTCONF>) {
|
||
|
chop;
|
||
|
if (($name, $value) = split(/\s+=\s+/, $_, 2)) {
|
||
|
$defaults{$name} = $value;
|
||
|
} else {
|
||
|
warn "unexpected $POSTCONF output: $_\n";
|
||
|
}
|
||
|
}
|
||
|
close(POSTCONF) || die "$POSTCONF failed: $!\n";
|
||
|
|
||
|
# Print all parameter definition text that we found, and warn about
|
||
|
# missing definition text.
|
||
|
|
||
|
for $param_name (sort keys %defaults) {
|
||
|
if (defined($definition{$param_name})) {
|
||
|
print "#DEFINE $param_name\n\n";
|
||
|
print $definition{$param_name};
|
||
|
print "\n\n";
|
||
|
} else {
|
||
|
warn "No definition found for $param_name\n";
|
||
|
}
|
||
|
}
|