# This software may be freely distributed and used according to the terms
# of the GNU Lesser General Public License.
-package Sherlock::Config;
+package UCW::Config;
use strict;
use warnings;
our %Sections = ();
our $DefaultConfigFile = "";
+our $Usage = "-C, --config filename Override the default configuration file
+-S, --set sec.item=val Manual setting of a configuration item";
+
sub Parse(@) {
my @options = @_;
}
foreach my $section (keys %Sections) {
my $opts = $Sections{$section};
- my $optlist = join(" ", keys %$opts);
+ my $optlist = join(";", keys %$opts);
my %filtered_opts = map { my $t=$_; $t=~s/[#\$]+$//; $t => $$opts{$_} } keys %$opts;
- my @l = `bin/config $defargs $section $optlist`;
+ my @l = `bin/config $defargs "$section\{$optlist\}"`;
$? && exit 1;
foreach my $o (@l) {
- $o =~ /^CF_([^=]+)='(.*)'\n$/ or die "Cannot parse bin/config output: $_";
+ $o =~ /^CF_.*_([^=]+)='(.*)'\n$/ or die "Cannot parse bin/config output: $_";
my $var = $filtered_opts{$1};
my $val = $2;
if (ref $var eq "SCALAR") {
} elsif (ref $var eq "ARRAY") {
push @$var, $val;
} elsif (ref $var) {
- die ("Sherlock::Config::Parse: don't know how to set $o");
+ die ("UCW::Config::Parse: don't know how to set $o");
}
}
}