Ignore:
Timestamp:
2006-04-21T15:23:06+12:00 (18 years ago)
Author:
kjdon
Message:

added a -describeall option, so we can generate the descriptive output for all plugins/classifiers at once

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/gsdl/bin/script/pluginfo.pl

    r11667 r11683  
    4343use gsprintf;
    4444use printusage;
    45 
    4645use parse2;
    4746
     
    5958    'type' => "flag",
    6059    'reqd' => "no" },
     60      { 'name' => "describeall",
     61    'desc' => "{scripts.describeall}",
     62    'type' => "flag",
     63    'reqd' => "no" },
    6164      { 'name' => "language",
    6265    'desc' => "{scripts.language}",
     
    7881    my $xml = 0;
    7982    my $listall = 0;
    80    
     83    my $describeall = 0;
    8184    my ($language, $encoding);
    8285
     
    130133    $plugin =~ s/\.pm$//; # allow xxxPlug.pm as the argument
    131134    }
    132     if (($listall == 0) && (!defined $plugin || $plugin eq "")) {
     135    if (($listall == 0 && $describeall ==0) && (!defined $plugin || $plugin eq "")) {
    133136    gsprintf(STDERR, "{pluginfo.no_plugin_name}\n\n");
    134137    PrintUsage::print_txt_usage($options, "{pluginfo.params}", 1);
     
    174177
    175178    }
     179    elsif ($describeall) {
     180    my $plugin_dir = &util::filename_cat($ENV{'GSDLCOLLECTDIR'},"perllib","plugins");
     181    my @plugin_list;
     182    if (!opendir (INDIR, $plugin_dir)) {
     183        print STDERR "pluginfo.pl: could not open directory $plugin_dir\n";
     184    } else {
     185        @plugin_list = grep (/Plug\.pm$/, readdir (INDIR));
     186        closedir (INDIR);
     187    }
     188    #sort (@plugin_list);
     189    if ($xml) {
     190        my $num_plugin = scalar(@plugin_list);
     191        &PrintUsage::print_xml_header("plugin", 1);
     192        print STDERR "<PlugInfoList length=\"$num_plugin\">\n";
     193    }
     194    foreach my $pl (@plugin_list) {
     195        $pl =~ s/\.pm$//;
     196        &print_single_plugin($pl, $xml, 0);
     197    }
     198    if ($xml) {
     199        print STDERR "</PlugInfoList>\n";
     200    }
     201    }
    176202    else {
    177 
    178     #my $pluginfo = &plugin::load_plugins ([[$plugin]]);
    179     #my $plugobj = shift @$pluginfo;
    180     my $plugobj = &plugin::load_plugin_for_info ($plugin);
    181     if ($xml) {
    182         $plugobj->print_xml_usage();
    183     }
    184     else {
    185         gsprintf(STDERR, "\n{pluginfo.passing_options}\n\n");
    186         gsprintf(STDERR, "{pluginfo.option_types}:\n\n");
    187         gsprintf(STDERR, "{pluginfo.specific_options}\n\n");
    188         gsprintf(STDERR, "{pluginfo.general_options}\n\n");
    189         gsprintf(STDERR, "$plugin {pluginfo.info}:\n\n");
    190        
    191         $plugobj->print_txt_usage();
    192     }
    193     }
     203    &print_single_plugin($plugin, $xml, 1);
     204    }
     205}
     206
     207sub print_single_plugin {
     208    my ($plugin, $xml, $header) = @_;
     209    my $plugobj = &plugin::load_plugin_for_info ($plugin);
     210    if ($xml) {
     211    $plugobj->print_xml_usage($header);
     212    }
     213    else {
     214    gsprintf(STDERR, "\n{pluginfo.passing_options}\n\n");
     215    gsprintf(STDERR, "{pluginfo.option_types}:\n\n");
     216    gsprintf(STDERR, "{pluginfo.specific_options}\n\n");
     217    gsprintf(STDERR, "{pluginfo.general_options}\n\n");
     218    gsprintf(STDERR, "$plugin {pluginfo.info}:\n\n");
     219   
     220    $plugobj->print_txt_usage();
     221    }
     222   
    194223}
    195224
Note: See TracChangeset for help on using the changeset viewer.