Diff for /loncom/cgi/decompress.pl between versions 1.7 and 1.15

version 1.7, 2003/11/19 14:58:14 version 1.15, 2005/11/03 20:36:58
Line 2 Line 2
 #  #
 #  #
 # Copyright Michigan State University Board of Trustees  # Copyright Michigan State University Board of Trustees
 #   # $Id
 #  #
 # This file is part of the LearningOnline Network with CAPA (LON-CAPA).  # This file is part of the LearningOnline Network with CAPA (LON-CAPA).
 #  #
Line 29 Line 29
 # A CGI script that decompresses compressed files for mass uploading into  # A CGI script that decompresses compressed files for mass uploading into
 # construction space  # construction space
 ####  ####
   
 #Things still todo,  
 #It has been tabinated  
 #Now uses strict! with added feature of making everything very strict!  
 #about 50% through rewriting things to use split and join  
 #still have a lot of debugging statements that will go away after I get it to work ok(along with all the <br>'s)  
 #still have to rewrite the refresh tag to work right, its broken  
 #the whole thing is broken right now  
 #will rename the variables and reorder most of the script to make it more sane  
 #improve the general readability of the whole thing, because unlike C everyone gets to look at it, so it has to be readable  
 use strict;  use strict;
 use lib '/home/httpd/lib/perl';  use lib '/home/httpd/lib/perl';
 use LONCAPA::loncgi ();  use LONCAPA::loncgi;
 if(! &LONCAPA::loncgi::check_cookie_and_load_env())  
 {  if(! &LONCAPA::loncgi::check_cookie_and_load_env()) {
     print "Content-type: text/html\n\n";      print "Content-type: text/html\n\n";
     print <<END;      print <<END;
     <html><body>NO COOKIE!</body></html>      <html><body>NO COOKIE!</body></html>
 END  END
 }  } else {
 else  
 {  
     print "Content-type: text/html\n\n";      print "Content-type: text/html\n\n";
     if(! $ENV{'cgi.file'} || ! $ENV{'cgi.dir'})      my $file=$Apache::lonnet::env{'cgi.file'};
     {      my $dir=$Apache::lonnet::env{'cgi.dir'}; 
         print <<END;      if(! $file || ! $dir) {
           print(<<END);
         <html><body>Bad Enviroment!</body></html>          <html><body>Bad Enviroment!</body></html>
 END  END
     }      } else {
     else          print(<<END);
     {   <html><body><p><b>Output of decompress:</b></p>
         print <<END;  
  <html><body><b>Output of decompress:</b><br /><br />  
 END  END
         chdir $ENV{'cgi.dir'};          chdir($dir);
         if ($ENV{'cgi.file'} =~ m|zip|)   my @cmd;
         {          if ($file =~ m|\.zip$|) {
             open(OUTPUT, "unzip $ENV{'cgi.file'} 2> /dev/null |");              @cmd = ("/usr/bin/unzip","-o");
             while (<OUTPUT>)          } elsif ($file =~ m|\.tar\.gz$|) {
             {              @cmd = ("/usr/bin/tar","-zxpvf");
                 print "$_<br />";          } elsif ($file =~ m|\.tar\.bz2$|) {
             }              @cmd = ("/usr/bin/tar","-jxpvf");
             close(TRACE);          } elsif ($file =~ m|\.bz2$|) {
         }              @cmd = ("/usr/bin/bunzip2");
         elsif ($ENV{'cgi.file'} =~ m|tar.gz|)          } elsif ($file =~ m|\.tgz$|) {
         {              @cmd = ("/usr/bin/tar","-zxpvf");
             open(OUTPUT, "tar -zxpvf $ENV{'cgi.file'} 2> /dev/null |");          } elsif ($file =~ m|\.gz$|) {
             while (<OUTPUT>)      @cmd = ("/usr/bin/gunzip");
             {          } elsif ($file =~ m|\.tar$|) {
                 print "$_<br />";              @cmd = ("/usr/bin/tar","-xpvf");
             }          } else {
             close(TRACE);              print("There has been an error in determining the file type of $file, please check name");
         }          }
         elsif ($ENV{'cgi.file'} =~ m|tar.bz2|)   if (@cmd) {
         {      undef($!);
             open(OUTPUT, "tar -jxpvf $ENV{'cgi.file'} 2> /dev/null |");      undef($@);
             while (<OUTPUT>)      open(OUTPUT,"-|", @cmd, $file);
             {      while (<OUTPUT>) { print "$_<br />"; }
                 print "$_<br />";      close(OUTPUT);
             }      print("<p><b>Decompress complete.</b></p>");
             close(TRACE);      if ($! || $@) {
         }   print("<p><b>An error occurred</b></p><p>$!</p><p>$@</p>");
         elsif ($ENV{'cgi.file'} =~ m|bz2|)      }
         {      print("</body></html>");
             open(OUTPUT, "bunzip2 $ENV{'cgi.file'} 2> /dev/null |");   }
             while (<OUTPUT>)  
             {  
                 print "$_<br />";  
             }  
             close(TRACE);  
         }  
         elsif ($ENV{'cgi.file'} =~ m|tgz|)  
         {  
             open(OUTPUT, "tar -zxpvf $ENV{'cgi.file'} 2> /dev/null |");  
             while (<OUTPUT>)  
             {  
                 print "$_<br />";  
             }  
             close(TRACE);  
         }  
         elsif ($ENV{'cgi.file'} =~ m|gz|)  
         {  
             open(OUTPUT, "gunzip $ENV{'cgi.file'} 2> /dev/null |");  
             while (<OUTPUT>)  
             {  
                 print "$_<br />";  
             }  
             close(TRACE);  
         }  
         elsif ($ENV{'cgi.file'} =~ m|tar|)  
         {  
             open(OUTPUT, "tar -xpvf $ENV{'cgi.file'} 2> /dev/null |");  
             while (<OUTPUT>)  
             {  
                 print "$_<br />";  
             }  
             close(TRACE);  
         }  
         else  
         {  
             print "There has been an error in determining the file type of $ENV{'cgi.file'}, please check name";  
         }  
         print "<br /><b>Decompress complete!</b><br /></body></html>";  
     }      }
 }  }
   

Removed from v.1.7  
changed lines
  Added in v.1.15


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>