Changeset 11683 for trunk


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

Location:
trunk/gsdl/bin/script
Files:
2 edited

Legend:

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

    r10350 r11683  
    5959    'type' => "flag",
    6060    'reqd' => "no" },
     61      { 'name' => "describeall",
     62    'desc' => "{scripts.describeall}",
     63    'type' => "flag",
     64    'reqd' => "no" },
    6165      { 'name' => "language",
    6266    'desc' => "{scripts.language}",
     
    7781    my $xml = 0;
    7882    my $listall = 0;
     83    my $describeall = 0;
    7984    my $language;
    8085
     
    106111    $classifier =~ s/\.pm$//; # allow xxx.pm as the argument
    107112    }
    108     if (($listall == 0) && (!defined $classifier || $classifier eq "")) {
     113    if (($listall == 0 && $describeall == 0) && (!defined $classifier || $classifier eq "")) {
    109114    &gsprintf(STDERR, "{classinfo.no_classifier_name}\n\n");
    110115    &PrintUsage::print_txt_usage($options, "{classinfo.params}", 1);
     
    150155
    151156    }
     157    elsif ($describeall) {
     158    my $class_dir = &util::filename_cat($ENV{'GSDLCOLLECTDIR'},"perllib","classify");
     159    my @class_list;
     160    if (!opendir (INDIR, $class_dir)) {
     161        print STDERR "classinfo.pl: could not open directory $class_dir\n";
     162    } else {
     163        @class_list = grep (/\.pm$/, readdir (INDIR));
     164        closedir (INDIR);
     165    }
     166    if ($xml) {
     167        my $num_class = scalar(@class_list);
     168        &PrintUsage::print_xml_header("classify", 1);
     169        print STDERR "<ClassInfoList length=\"$num_class\">\n";
     170    }
     171    foreach my $cl (@class_list) {
     172        $cl =~ s/\.pm$//;
     173        &print_single_classifier($cl, $xml, 0);
     174    }
     175    if ($xml) {
     176        print STDERR "</ClassInfoList>\n";
     177    }
     178    }
    152179    else {
    153     my $classobj = &classify::load_classifier_for_info ($classifier);
    154     if ($xml) {
    155         $classobj->print_xml_usage();
    156     }
    157     else {
    158         &gsprintf(STDERR, "\n{classinfo.passing_options}\n\n");
    159         &gsprintf(STDERR, "{classinfo.option_types}:\n\n");
    160         &gsprintf(STDERR, "{classinfo.specific_options}\n\n");
    161         &gsprintf(STDERR, "{classinfo.general_options}\n\n");
    162         &gsprintf(STDERR, "$classifier {classinfo.info}:\n\n");
    163        
    164         $classobj->print_txt_usage();
    165     }
    166     }
     180    &print_single_classifier($classifier, $xml, 1);
     181    }
     182}
     183
     184sub print_single_classifier {
     185    my ($classifier, $xml, $header) = @_;
     186    my $classobj = &classify::load_classifier_for_info ($classifier);
     187    if ($xml) {
     188    $classobj->print_xml_usage($header);
     189    }
     190    else {
     191    &gsprintf(STDERR, "\n{classinfo.passing_options}\n\n");
     192    &gsprintf(STDERR, "{classinfo.option_types}:\n\n");
     193    &gsprintf(STDERR, "{classinfo.specific_options}\n\n");
     194    &gsprintf(STDERR, "{classinfo.general_options}\n\n");
     195    &gsprintf(STDERR, "$classifier {classinfo.info}:\n\n");
     196   
     197    $classobj->print_txt_usage();
     198    }
     199   
    167200}
    168201
  • 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.