Changeset 809 for trunk


Ignore:
Timestamp:
1999-12-07T10:43:37+13:00 (24 years ago)
Author:
sjboddie
Message:

plugins now take options, maxdocs is always defined

Location:
trunk/gsdl/perllib
Files:
5 edited

Legend:

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

    r537 r809  
    2929
    3030sub load_plugins {
    31     my ($collection, $plugin_list) = @_;
     31    my ($plugin_list) = @_;
    3232    my @plugin_objects = ();
    3333
    34     foreach $plugin (@$plugin_list) {
     34    foreach $pluginoptions (@$plugin_list) {
     35    my $pluginname = shift @$pluginoptions;
     36    next unless defined $pluginname;
     37
    3538    # find the plugin
    3639    my $colplugname = &util::filename_cat($ENV{'GSDLCOLLECTDIR'},"perllib/plugins",
    37                           "${plugin}.pm");
     40                          "${pluginname}.pm");
    3841    my $mainplugname = &util::filename_cat($ENV{'GSDLHOME'},"perllib/plugins",
    39                            "${plugin}.pm");
     42                           "${pluginname}.pm");
    4043    if (-e $colplugname) { require $colplugname; }
    4144    elsif (-e $mainplugname) { require $mainplugname; }
    42     else { die "ERROR - couldn't find plugin $plugin\n"; }
     45    else { die "ERROR - couldn't find plugin \"$pluginname\"\n"; }
    4346
    4447    # create a plugin object
    4548    my ($plugobj);
    46     eval ("\$plugobj = new $plugin()");
     49    map { $_ = "\"$_\""; } @$pluginoptions;
     50    my $options = join (",", @$pluginoptions);
     51    eval ("\$plugobj = new \$pluginname($options)");
    4752    die "$@" if $@;
    48 
     53   
    4954    # add this object to the list
    5055    push (@plugin_objects, $plugobj);
     
    5560
    5661sub read {
    57     my ($pluginfo, $base_dir, $file, $metadata, $processor, $maxdocs) = @_;
     62    my ($pluginfo, $base_dir, $file, $metadata, $processor, $maxdocs, $aux) = @_;
    5863
     64    $maxdocs = -1 unless defined $maxdocs && $maxdocs =~ /\d/;
    5965    my $rv = 0;
    6066
     
    6369    foreach $plugobj (@$pluginfo) {
    6470    $rv = $plugobj->read($pluginfo, $base_dir, $file,
    65                  $metadata, $processor, $maxdocs);
     71                 $metadata, $processor, $maxdocs, $aux);
    6672    return $rv if defined $rv;
    6773    }
  • trunk/gsdl/perllib/plugins/ArcPlug.pm

    r537 r809  
    7878    # process each file
    7979    foreach $subfile (@$file_list) {
    80         last if (defined $maxdocs && $maxdocs =~ /\d/ && $count >= $maxdocs);
     80        last if ($maxdocs != -1 && $count >= $maxdocs);
    8181
    8282        my $tmp = &util::filename_cat ($file, $subfile->[0]);
  • trunk/gsdl/perllib/plugins/GMLPlug.pm

    r707 r809  
    153153    my ($assoc_file_info);
    154154    foreach $assoc_file_info (@$assoc_files) {
    155     my ($assoc_file, $mime_type) = split (":", $assoc_file_info);
     155    my ($assoc_file, $mime_type, $dir) = split (":", $assoc_file_info);
     156    $dir = "" unless defined $dir;
    156157    $doc_obj->associate_file(&util::filename_cat($parent_dir, $assoc_file),
    157                  $assoc_file, $mime_type);
     158                 &util::filename_cat($dir, $assoc_file), $mime_type);
    158159                 
    159160    }
  • trunk/gsdl/perllib/plugins/IndexPlug.pm

    r640 r809  
    105105    my $count = 0;
    106106    foreach $docfile (keys (%$list)) {
    107     last if (defined $maxdocs && $maxdocs =~ /\d/ && $count >= $maxdocs);
     107    last if ($maxdocs != -1 && $count >= $maxdocs);
    108108    $metadata = {}; # at present we can do this as metadata
    109109                    # will always be empty when it arrives
  • trunk/gsdl/perllib/plugins/RecPlug.pm

    r620 r809  
    8989    # process each file
    9090    foreach $subfile (@dir) {
    91         last if (defined $maxdocs && $maxdocs =~ /\d/ && $count >= $maxdocs);
     91        last if ($maxdocs != -1 && $count >= $maxdocs);
    9292
    9393        if ($subfile !~ /^\.\.?$/) {
Note: See TracChangeset for help on using the changeset viewer.