You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
69 lines
1.2 KiB
Perl
69 lines
1.2 KiB
Perl
|
|
# infobot :: Kevin Lenzo (c) 1997
|
|
|
|
if (!$filesep) {
|
|
$filesep = '/';
|
|
};
|
|
|
|
sub loadParamFiles {
|
|
my (@files) = @_;
|
|
my @result;
|
|
my $p;
|
|
|
|
if (!@files) {
|
|
# &status("no param files to load");
|
|
return '';
|
|
}
|
|
|
|
foreach $p (@files) {
|
|
if ($p !~ /\S/) {
|
|
&status("warning: param file name is null");
|
|
return '';
|
|
}
|
|
|
|
if (open(PARAM, $p)) {
|
|
my $count;
|
|
while (<PARAM>) {
|
|
chomp;
|
|
next if /^\s*\#/;
|
|
next unless /\S/;
|
|
my ($key, $val) = split(/\s+/, $_, 2);
|
|
$val =~ s/\s+$//;
|
|
|
|
# perform variable interpolation
|
|
|
|
$val =~ s/(\$(\w+))/$param{$2}/g;
|
|
&status("setting $key => $val")
|
|
if (exists $param{VERBOSITY} and $param{VERBOSITY} > 2);
|
|
|
|
$param{$key} = $val;
|
|
|
|
++$count;
|
|
}
|
|
&status("loaded param file $p ($count items)");
|
|
close(PARAM);
|
|
} else {
|
|
&status("failed to load param file $p");
|
|
}
|
|
}
|
|
}
|
|
|
|
sub writeParamFile {
|
|
my ($filename) = $_[0];
|
|
# write the current parameter set to $filename.
|
|
# returns 1 if successful
|
|
|
|
if (open POUT, ">$filename") {
|
|
foreach (sort keys %param) {
|
|
print POUT "$_ $param{$_}\n";
|
|
}
|
|
close POUT;
|
|
return 1;
|
|
} else {
|
|
# couldn't write the file
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
1;
|