cvsuser 03/03/14 05:49:34
Modified: P5EEx/Blue/P5EEx/Blue/Config File.pm
Log:
added ability to make substitutions in config file based on initconf file
Revision Changes Path
1.11 +17 -13 p5ee/P5EEx/Blue/P5EEx/Blue/Config/File.pm
Index: File.pm
===================================================================
RCS file: /cvs/public/p5ee/P5EEx/Blue/P5EEx/Blue/Config/File.pm,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -w -r1.10 -r1.11
--- File.pm 30 Dec 2002 18:58:09 -0000 1.10
+++ File.pm 14 Mar 2003 13:49:34 -0000 1.11
@@ -1,10 +1,10 @@
#############################################################################
-## $Id: File.pm,v 1.10 2002/12/30 18:58:09 spadkins Exp $
+## $Id: File.pm,v 1.11 2003/03/14 13:49:34 spadkins Exp $
#############################################################################
package P5EEx::Blue::Config::File;
-$VERSION = do { my @r=(q$Revision: 1.10 $=~/\d+/g); sprintf "%d."."%02d"x$#r,@r};
+$VERSION = do { my @r=(q$Revision: 1.11 $=~/\d+/g); sprintf "%d."."%02d"x$#r,@r};
use P5EEx::Blue::P5EE;
use P5EEx::Blue::Config;
@@ -15,15 +15,15 @@
sub create {
my $self = shift;
- my ($args);
+ my ($initconf);
if ($#_ >= 0 && ref($_[0]) eq "HASH") {
- $args = $_[0];
+ $initconf = $_[0];
}
elsif ($#_ >= 0 && $#_ % 2 == 1) {
- $args = { @_ };
+ $initconf = { @_ };
}
else {
- $args = {};
+ $initconf = {};
}
local(*FILE);
@@ -31,13 +31,13 @@
my ($file, $testfile, $confdir, $conf, @files, $filebase, $filetype,
$scriptbase, $script);
my ($serializer_class, $open);
- $file = $args->{configFile};
+ $file = $initconf->{configFile};
$file = $ENV{P5EE_CONFIG_FILE} if (!$file);
- $serializer_class = $args->{configSerializerClass};
+ $serializer_class = $initconf->{configSerializerClass};
$serializer_class = $ENV{P5EE_CONFIG_FILE_SERIALIZER} if (!$serializer_class);
- if ($args->{prefix}) {
- $confdir = $args->{prefix} . "/etc";
+ if ($initconf->{prefix}) {
+ $confdir = $initconf->{prefix} . "/etc";
}
else {
$confdir = $0;
@@ -73,8 +73,8 @@
if (!$file) {
# if a "configFile" was not specified, but a "config" is, use it
# and don't even try to "autofind" a config file
- if ($args->{config}) {
- $conf = $args->{config};
+ if ($initconf->{config}) {
+ $conf = $initconf->{config};
}
else {
$conf = {}; # this will be overridden if a config file is found
@@ -88,7 +88,7 @@
}
}
}
- $args->{configFile} = $file if ($file);
+ $initconf->{configFile} = $file if ($file);
}
}
@@ -105,6 +105,10 @@
@text = <main::FILE>;
close(main::FILE);
$text = join("",@text);
+
+ # Now do substitutions for {:var:} or {:var=default:} in the config file to
the value in the initconf file
+ # (we really should do this only for text file types)
+ $text =~ s/\{:([a-zA-Z0-9_]+)(=?)([^:\}]*):\}/(defined $initconf->{$1} ?
$initconf->{$1} : ($2 ? $3 : $1))/eg;
if (!$serializer_class) {