cvsuser 02/02/18 10:45:09
Modified: P5EEx/Blue/P5EEx/Blue/Config File.pm
Log:
fix bug allowing 'test.pl' to be inferred as the config file for the 'test.pl' script
Revision Changes Path
1.5 +7 -5 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.4
retrieving revision 1.5
diff -u -w -r1.4 -r1.5
--- File.pm 5 Feb 2002 22:21:27 -0000 1.4
+++ File.pm 18 Feb 2002 18:45:09 -0000 1.5
@@ -1,10 +1,10 @@
#############################################################################
-## $Id: File.pm,v 1.4 2002/02/05 22:21:27 spadkins Exp $
+## $Id: File.pm,v 1.5 2002/02/18 18:45:09 spadkins Exp $
#############################################################################
package P5EEx::Blue::Config::File;
-$VERSION = do { my @r=(q$Revision: 1.4 $=~/\d+/g); sprintf "%d."."%02d"x$#r,@r};
+$VERSION = do { my @r=(q$Revision: 1.5 $=~/\d+/g); sprintf "%d."."%02d"x$#r,@r};
use P5EEx::Blue::P5EE;
use P5EEx::Blue::Config;
@@ -25,7 +25,7 @@
local(*FILE);
- my ($file, $testfile, $dir, @files, $filebase, $filetype, $scriptbase);
+ my ($file, $testfile, $dir, @files, $filebase, $filetype, $scriptbase, $script);
my ($serializer_class, $open);
$file = $args->{configFile};
@@ -44,6 +44,7 @@
$scriptbase = $0;
$scriptbase =~ s!.*/!!; # remove leading path
+ $script = $scriptbase;
$scriptbase =~ s!\.[^\.]+$!!; # remove trailing extension (i.e. ".cgi")
if ($file) {
@@ -59,6 +60,7 @@
CONFIGFILE: foreach $filetype qw(pl xml ini properties perl conf) {
foreach $filebase ($scriptbase, "config") {
$testfile = ($dir eq ".") ? "$filebase.$filetype" :
"$dir/$filebase.$filetype";
+ next if ($testfile eq $script);
if (-r $testfile) {
$file = $testfile;
last CONFIGFILE;
@@ -142,13 +144,13 @@
eval($text);
if ($@) {
P5EEx::Blue::Exception::Config->throw(
- error => "create(): error eval'ing config text: $@\n"
+ error => "create(): [$file] error eval'ing config text: $@\n"
);
}
}
else {
P5EEx::Blue::Exception::Config->throw(
- error => "create(): config text doesn't start with '\$var ='\n"
+ error => "create(): [$file] config text doesn't match '\$var =
{...};'\n"
);
}
}