Ignore:
Timestamp:
2006-08-31T14:08:40+12:00 (18 years ago)
Author:
mdewsnip
Message:

Merged the "-listall" and "-describeall" code, and made both always produce XML. The format of the XML has changed slightly too.

File:
1 edited

Legend:

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

    r12625 r12629  
    158158    }
    159159
    160     if ($listall) {
    161     my $download_dir = &util::filename_cat($ENV{'GSDLCOLLECTDIR'},"perllib","downloaders");
     160    if ($listall || $describeall) {
     161    my $download_dir = &util::filename_cat($ENV{'GSDLCOLLECTDIR'}, "perllib", "downloaders");
    162162    if (!opendir (INDIR, $download_dir)) {
    163163        print STDERR "downloadinfo.pl: could not open directory $download_dir\n";
    164164    }
    165165    else {
    166         my @download_list = grep (/Download\.pm$/, readdir (INDIR));
     166        my @downloader_list = grep (/Download\.pm$/, readdir (INDIR));
    167167        closedir (INDIR);
    168        
    169         if ($xml) {
    170         my $intNumDownloads = scalar(@download_list);
    171        
    172         print STDERR "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
    173         print STDERR "<DownloadList length=\"$intNumDownloads\">\n";
    174         map { print STDERR "  <DownloadName>$_</DownloadName>\n"; } @download_list;
    175         print STDERR "</DownloadList>\n";
     168
     169        print STDERR "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
     170        print STDERR "<DownloadList length=\"" . scalar(@downloader_list) . "\">\n";
     171        foreach my $downloader (@downloader_list) {
     172        $downloader =~ s/\.pm$//;
     173        my $downloaderobj = &download::load_download ($downloader);
     174        if ($describeall) {
     175            $downloaderobj->print_xml_usage(0);
     176        }
     177        else {
     178            $downloaderobj->print_xml_usage(0, 1);
     179        }
    176180        }
    177         else {
    178         print STDERR join(" ",@download_list), "\n";
    179         }
    180     }
    181     }
    182     elsif ($describeall) {
    183     my $download_dir = &util::filename_cat($ENV{'GSDLCOLLECTDIR'},"perllib","downloaders");
    184     my @download_list;
    185     if (!opendir (INDIR, $download_dir)) {
    186         print STDERR "downloadinfo.pl: could not open directory $download_dir\n";
    187     }
    188     else {
    189         @download_list = grep (/Download\.pm$/, readdir (INDIR));
    190         closedir (INDIR);
    191     }
    192     #sort (@download_list);
    193     if ($xml) {
    194         my $num_download = scalar(@download_list);
    195         &PrintUsage::print_xml_header("download", 1);
    196         print STDERR "<DownloadInfoList length=\"$num_download\">\n";
    197     }
    198     foreach my $pl (@download_list) {
    199         $pl =~ s/\.pm$//;
    200         &print_single_download($pl, $xml, 0);
    201     }
    202     if ($xml) {
    203         print STDERR "</DownloadInfoList>\n";
    204     }
    205     }
    206 
     181        print STDERR "</DownloadList>\n";
     182    }
     183    }
    207184    else {
    208185    &print_single_download($download_name, $xml, 1);
    209186    }
    210187}
     188
    211189
    212190sub print_single_download {
Note: See TracChangeset for help on using the changeset viewer.