Changeset 9898 for trunk/gsdl


Ignore:
Timestamp:
2005-05-17T13:23:11+12:00 (19 years ago)
Author:
davidb
Message:

General improvements to cgi-scripts. gsdl/perllib/util.pm now loaded
in to help reduce the number of Unix dependencies.

Location:
trunk/gsdl/cgi-bin
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/gsdl/cgi-bin/download

    r9208 r9898  
    22
    33use gsdlCGI;
     4
     5sub load_gsdl_utils
     6{
     7    my ($gsdlhome) = @_;
     8
     9    require "$gsdlhome/perllib/util.pm";
     10}
    411
    512sub main
     
    714    my $gsdl_cgi = new gsdlCGI("+cmdline");
    815
    9     my $gsdlhome = $gsdl_cgi->get_config_info("gsdlhome");
     16    my $gsdlhome = $gsdl_cgi->get_gsdl_home();
     17
     18    $ENV{'GSDLOS'} = "linux";
     19
     20    load_gsdl_utils($gsdlhome);
    1021
    1122    my $col = $gsdl_cgi->clean_param("c");
     
    2031    if(($accept_expr eq "") || (!defined $accept_expr)) {
    2132    $accept_expr = "";
    22     print "not using accept";
    2333    }
    2434    else {
     
    2939    if(($reject_expr eq "") || (!defined $reject_expr)) {
    3040    $reject_expr = "";
    31     print "not using reject";
    3241    }
    3342    else {
     
    3544    }
    3645
     46    my $zip_dirname = "";
     47
    3748    if ($col =~ m/^\//) {
    3849    # leading / at start denotes special "cols" such as "/tmp"
    39     $gsdl_cgi->checked_chdir("$gsdlhome");
     50
     51    $zip_dirname = $gsdlhome;
    4052    $col =~ s/^\///;
    4153    }
    4254    else {
    43     $gsdl_cgi->checked_chdir("$gsdlhome/collect");
     55    $zip_dirname = &util::filename_cat($gsdlhome,"collect");
    4456    }
    4557   
    46     `java -classpath $gsdlhome/bin/java/SignedGatherer.jar org.greenstone.gatherer.util.Zipup $gsdlhome/ $col $dir $accept_expr $reject_expr`;
    47    
    48     my $pipe_cmd = "cat $col.zip"; # Unix specific
    49    
    50     if (open(PIN,"$pipe_cmd |")) {
     58    my $java = $gsdl_cgi->check_for_java();
     59
     60    my $classpath
     61    = &util::filename_cat($gsdlhome,"bin","java","SignedGatherer.jar");
     62    my $java_prog = "org.greenstone.gatherer.util.Zipup";
     63    my $java_args = "$zip_dirname/ $col $dir $accept_expr $reject_expr";
     64    my $java_cmd = "$java -classpath $classpath $java_prog $java_args";
     65
     66    `$java_cmd`;
     67
     68    my $zip_filename = &util::filename_cat($zip_dirname,"$col.zip");
     69
     70    if (open(PIN,"<$zip_filename")) {
    5171    binmode(PIN);
    5272
     
    5474    my $num_bytes = 0;
    5575
    56     print "Content-type:application/zip\n\n";
     76    print STDOUT "Content-type:application/zip\n\n";
    5777
    5878    while (read(PIN,$buf,1024)>0) {
     
    6686    }
    6787    else {
    68         $gsdl_cgi->generate_error("Unable to pipe input from: $pipe_cmd");
     88        my $mess = "Unable to read in $zip_filename\n  $!";
     89    $gsdl_cgi->generate_error($mess);
    6990    }
    7091   
    71     unlink "$col.zip";
     92    unlink "$zip_filename";
    7293}
    7394
  • trunk/gsdl/cgi-bin/launch

    r9208 r9898  
    22
    33use gsdlCGI;
     4
     5sub load_gsdl_utils
     6{
     7    my ($gsdlhome) = @_;
     8
     9    require "$gsdlhome/perllib/util.pm";
     10}
    411
    512sub run_gencmd
     
    3744
    3845    my $status;
    39 
     46   
    4047    print STDOUT "Content-type:text/plain\n\n";
    4148
     
    116123}
    117124
     125sub run_exportcol
     126{
     127    my ($gsdlhome,$col,$gsdl_cgi) = @_;
     128   
     129    # multiple collections represented by ':' concatenated list
     130    $col =~ s/:/ /g;
     131
     132    if (defined $col) {
     133    my ($remote_user) = ($col =~ m/^([^\-]+)/);
     134
     135    my $cddir = $gsdl_cgi->clean_param("cddir");
     136   
     137    my $remote_dirname = &util::filename_cat($gsdlhome,"tmp",$remote_user);
     138    my $remote_cd_dirname = &util::filename_cat($remote_dirname,$cddir);
     139
     140    if (!-e $remote_dirname) {
     141        &util::mk_dir($remote_dirname);
     142    }
     143
     144    if (-e $remote_cd_dirname) {
     145        &util::rm_r($remote_cd_dirname);
     146    }
     147
     148    # Update cddir cgi param prefiexed by remote_user
     149    $cddir = &util::filename_cat($remote_user,$cddir);
     150    $gsdl_cgi->delete("cddir");
     151    $gsdl_cgi->param(-name=>"cddir", -value=>$cddir);
     152    }
     153
     154    return run_gencmd("exportcol",$col,$gsdl_cgi);
     155}
     156
     157sub run_exportas
     158{
     159    my ($col,$gsdl_cgi) = @_;
     160   
     161    # multiple collections represented by ':' concatenated list
     162    $col =~ s/:/ /g;
     163
     164    return run_gencmd("export",$col,$gsdl_cgi);
     165}
     166
     167
    118168
    119169sub run_deldir
     
    139189{
    140190    my $gsdl_cgi = new gsdlCGI("+cmdline");
    141     my $gsdlhome = $gsdl_cgi->get_config_info("gsdlhome");
     191    my $gsdlhome = $gsdl_cgi->get_gsdl_home();
     192
     193    $ENV{'GSDLOS'} = "linux";
     194
     195    load_gsdl_utils($gsdlhome);
    142196   
    143197    $gsdl_cgi->checked_chdir($gsdlhome);
     
    172226    run_buildcol($col,$gsdl_cgi);
    173227    }
     228    elsif ($cmd eq "exportcol") {
     229    run_exportcol($gsdlhome,$col,$gsdl_cgi);
     230    }
     231    elsif ($cmd eq "exportas") {
     232    run_exportas($col,$gsdl_cgi);
     233    }
    174234    elsif ($cmd eq "deldir") {
    175235    run_deldir($col,$gsdl_cgi);
  • trunk/gsdl/cgi-bin/upload

    r9388 r9898  
    77
    88    my $gsdl_cgi = new gsdlCGI();
    9     my $gsdlhome = $gsdl_cgi->get_config_info("gsdlhome");
     9    my $gsdlhome = $gsdl_cgi->get_gsdl_home();
    1010
    1111    my $col = $gsdl_cgi->clean_param("c");
     
    4242
    4343    my $col_dir = "$col/$dir"; # Unix specific
     44
     45##    my $java = $gsdl_cgi->check_for_java();
    4446
    4547#    if($delete eq "all") {
     
    8789    #`cp $zip_fname /tmp/mgw5/$dir.zip`;
    8890
    89     `java -classpath $gsdlhome/bin/java/SignedGatherer.jar org.greenstone.gatherer.util.Unzip $gsdlhome/ $zip_fname`;
     91    my $java = $gsdl_cgi->check_for_java();
     92
     93    `$java -classpath $gsdlhome/bin/java/SignedGatherer.jar org.greenstone.gatherer.util.Unzip $gsdlhome/ $zip_fname`;
    9094
    9195    unlink "$zip_fname";
Note: See TracChangeset for help on using the changeset viewer.