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) {
   
  
  
  

Reply via email to