Changeset 14933

Show
Ignore:
Timestamp:
20.12.2007 18:09:10 (12 years ago)
Author:
davidb
Message:

plugin.pm modified to look for plugins in extension folder

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • gsdl/trunk/perllib/plugin.pm

    r14239 r14933  
    4444my ($verbosity, $outhandle, $failhandle, $globaloptions); 
    4545 
     46 
     47sub load_plugin_require 
     48{ 
     49    my ($pluginname) = @_; 
     50 
     51    my @check_list = (); 
     52 
     53    # pp_plugname shorthand for 'perllib' 'plugin' '$pluginname.pm'  
     54    my $pp_plugname  
     55    = &util::filename_cat('perllib', 'plugins', "${pluginname}.pm"); 
     56    my $collectdir = $ENV{'GSDLCOLLECTDIR'}; 
     57 
     58    # find the plugin 
     59    if (defined($ENV{'GSDLCOLLECTION'})) 
     60    { 
     61    my $customplugname  
     62        = &util::filename_cat($collectdir, "custom",$ENV{'GSDLCOLLECTION'}, 
     63                  $pp_plugname); 
     64    push(@check_list,$customplugname); 
     65    } 
     66 
     67    my $colplugname = &util::filename_cat($collectdir, $pp_plugname); 
     68    push(@check_list,$colplugname); 
     69 
     70    if (defined $ENV{'GSDLEXTS'}) { 
     71 
     72    my $ext_prefix = &util::filename_cat($ENV{'GSDLHOME'}, "ext"); 
     73 
     74    my @extensions = split(/:/,$ENV{'GSDLEXTS'}); 
     75    foreach my $e (@extensions) { 
     76        my $extplugname = &util::filename_cat($ext_prefix, $e, $pp_plugname); 
     77        push(@check_list,$extplugname); 
     78 
     79    } 
     80    } 
     81 
     82 
     83    my $mainplugname = &util::filename_cat($ENV{'GSDLHOME'}, $pp_plugname); 
     84    push(@check_list,$mainplugname); 
     85 
     86    my $success=0; 
     87    foreach my $plugname (@check_list) { 
     88    if (-e $plugname) { 
     89        require $plugname; 
     90        $success=1; 
     91        last; 
     92    } 
     93    } 
     94 
     95    if (!$success) { 
     96    &gsprintf(STDERR, "{plugin.could_not_find_plugin}\n", 
     97          $pluginname); 
     98    die "\n"; 
     99    } 
     100} 
     101 
    46102sub load_plugin_for_info { 
    47103    my ($pluginname) = shift @_; 
    48104 
    49     # find the plugin 
    50     my $customplugname; 
    51     if (defined($ENV{'GSDLCOLLECTION'})) 
    52     { 
    53     $customplugname = &util::filename_cat($ENV{'GSDLCOLLECTDIR'}, "custom", $ENV{'GSDLCOLLECTION'},  
    54                                              'perllib', 'plugins', "${pluginname}.pm"); 
    55     } 
    56     my $colplugname = &util::filename_cat($ENV{'GSDLCOLLECTDIR'}, 'perllib', 'plugins',  
    57                       "${pluginname}.pm"); 
    58     my $mainplugname = &util::filename_cat($ENV{'GSDLHOME'}, 'perllib', 'plugins',  
    59                        "${pluginname}.pm"); 
    60     if (defined($customplugname) && -e $customplugname) { require $customplugname; } 
    61     elsif (-e $colplugname) { require $colplugname; } 
    62     elsif (-e $mainplugname) { require $mainplugname; } 
    63     else { 
    64     &gsprintf(STDERR, "{plugin.could_not_find_plugin}\n", 
    65          $pluginname); 
    66     die "\n"; 
    67     } 
     105    load_plugin_require($pluginname); 
    68106 
    69107    # create a plugin object 
     
    97135    next unless defined $pluginname; 
    98136 
    99     # find the plugin 
    100         my $customplugname = &util::filename_cat($ENV{'GSDLCOLLECTDIR'}, "custom", $ENV{'GSDLCOLLECTION'},  
    101                                                  'perllib', 'plugins', "${pluginname}.pm"); 
    102     my $colplugname = &util::filename_cat($ENV{'GSDLCOLLECTDIR'}, 'perllib', 'plugins',  
    103                           "${pluginname}.pm"); 
    104     my $mainplugname = &util::filename_cat($ENV{'GSDLHOME'}, 'perllib', 'plugins', 
    105                            "${pluginname}.pm"); 
    106         if (-e $customplugname) { require $customplugname; } 
    107     elsif (-e $colplugname) { require $colplugname; } 
    108     elsif (-e $mainplugname) { require $mainplugname; } 
    109     else { 
    110         gsprintf($outhandle, "{plugin.could_not_find_plugin}\n", 
    111              $pluginname); 
    112         die "\n"; 
    113     } 
     137    load_plugin_require($pluginname); 
    114138 
    115139    # create a plugin object