summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorOliver Tappe2007-07-02 22:26:29 +0200
committerOliver Tappe2007-07-02 22:26:29 +0200
commite8555b0c941af3702a7873a230ade1af18b5aae6 (patch)
tree96f66fe1a98d00acd9fab4df2aae67a0e0e3e215 /lib
parent* minor fix, wrong action type passed to initialize() (diff)
downloadcore-e8555b0c941af3702a7873a230ade1af18b5aae6.tar.gz
core-e8555b0c941af3702a7873a230ade1af18b5aae6.tar.xz
core-e8555b0c941af3702a7873a230ade1af18b5aae6.zip
* moved checkFlags() from Utils to Basics and used it there (in
InstantiateClass()) git-svn-id: http://svn.openslx.org/svn/openslx/trunk@1218 95ad53e4-c205-0410-b2fa-d234c58c8868
Diffstat (limited to 'lib')
-rw-r--r--lib/OpenSLX/Basics.pm42
-rw-r--r--lib/OpenSLX/Utils.pm14
2 files changed, 31 insertions, 25 deletions
diff --git a/lib/OpenSLX/Basics.pm b/lib/OpenSLX/Basics.pm
index 1624727c..b663a32c 100644
--- a/lib/OpenSLX/Basics.pm
+++ b/lib/OpenSLX/Basics.pm
@@ -23,13 +23,14 @@ $VERSION = 1.01;
@ISA = qw(Exporter);
@EXPORT = qw(
- &openslxInit %openslxConfig %cmdlineConfig
- &_tr &trInit
- &warn &die &croak &carp &confess &cluck
- &callInSubprocess &executeInSubprocess &slxsystem
- &vlog
- &instantiateClass
- &addCleanupFunction &removeCleanupFunction
+ &openslxInit %openslxConfig %cmdlineConfig
+ &_tr &trInit
+ &warn &die &croak &carp &confess &cluck
+ &callInSubprocess &executeInSubprocess &slxsystem
+ &vlog
+ &checkFlags
+ &instantiateClass
+ &addCleanupFunction &removeCleanupFunction
);
our (%openslxConfig, %cmdlineConfig, %openslxPath);
@@ -128,7 +129,7 @@ my %cleanupFunctions;
# filehandle used for logging:
my $openslxLog = *STDERR;
-$Carp::CarpLevel = 3;
+$Carp::CarpLevel = 1;
# ------------------------------------------------------------------------------
sub vlog
@@ -462,12 +463,31 @@ sub _doThrowOrWarn
}
# ------------------------------------------------------------------------------
+sub checkFlags
+{
+ my $flags = shift || confess 'need to pass in flags-hashref!';
+ my $knownFlags = shift || confess 'need to pass in knownFlags-arrayref!';
+
+ my %known;
+ @known{@$knownFlags} = ();
+ foreach my $flag (keys %$flags) {
+ next if exists $known{$flag};
+ cluck("flag '$flag' not known!");
+ }
+ return;
+}
+
+# ------------------------------------------------------------------------------
sub instantiateClass
{
- my $class = shift;
- my $requestedVersion = shift;
+ my $class = shift;
+ my $flags = shift || {};
+
+ checkFlags($flags, ['pathToClass', 'version']);
+ my $pathToClass = $flags->{pathToClass};
+ my $requestedVersion = $flags->{version};
- my $moduleName = $class;
+ my $moduleName = defined $pathToClass ? "$pathToClass/$class" : $class;
$moduleName =~ s[::][/]g;
$moduleName .= '.pm';
unless (eval { require $moduleName } ) {
diff --git a/lib/OpenSLX/Utils.pm b/lib/OpenSLX/Utils.pm
index 4d11e702..207edb98 100644
--- a/lib/OpenSLX/Utils.pm
+++ b/lib/OpenSLX/Utils.pm
@@ -82,20 +82,6 @@ sub linkFile
return;
}
-sub checkFlags
-{
- my $flags = shift || confess 'need to pass in flags-hashref!';
- my $knownFlags = shift || confess 'need to pass in knownFlags-arrayref!';
-
- my %known;
- @known{@$knownFlags} = ();
- foreach my $flag (keys %$flags) {
- next if exists $known{$flag};
- cluck("flag '$flag' not known!");
- }
- return;
-}
-
sub slurpFile
{
my $fileName = shift || confess 'need to pass in fileName!';