From e8555b0c941af3702a7873a230ade1af18b5aae6 Mon Sep 17 00:00:00 2001 From: Oliver Tappe Date: Mon, 2 Jul 2007 20:26:29 +0000 Subject: * 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 --- lib/OpenSLX/Basics.pm | 42 +++++++++++++++++++++++++++++++----------- lib/OpenSLX/Utils.pm | 14 -------------- 2 files changed, 31 insertions(+), 25 deletions(-) (limited to 'lib') 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 @@ -461,13 +462,32 @@ 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!'; -- cgit v1.2.3-55-g7522