Diff for /loncom/cgi/decompress.pl between versions 1.2 and 1.11

version 1.2, 2003/10/18 17:42:45 version 1.11, 2003/12/13 00:20:47
Line 1 Line 1
 #!/usr/bin/perl  #!/usr/bin/perl
 #  #
 #   #
 # 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 28 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
 ####  ####
   use strict;
 use lib '/home/httpd/lib/perl';  use lib '/home/httpd/lib/perl';
 use LONCAPA::Configuration;  use LONCAPA::loncgi ();
 use LONCAPA::loncgi();  if(! &LONCAPA::loncgi::check_cookie_and_load_env()) {
       print "Content-type: text/html\n\n";
 if(! &LONCAPA::loncgi::check_cookie_and_load_env()){      print <<END;
  print "Content-type: text/html\n\n";      <html><body>NO COOKIE!</body></html>
  print <<END;  
  NO COOKIE!  
 END  END
   } else {
       print "Content-type: text/html\n\n";
       if(! $ENV{'cgi.file'} || ! $ENV{'cgi.dir'}) {
           print <<END;
           <html><body>Bad Enviroment!</body></html>
   END
       } else {
           print <<END;
    <html><body><b>Output of decompress:</b><br /><br />
   END
           chdir $ENV{'cgi.dir'};
           if ($ENV{'cgi.file'} =~ m|\.zip$|i) {
               open(OUTPUT, "unzip -o $ENV{'cgi.file'} 2> /dev/null |");
               while (<OUTPUT>) {
                   print "$_<br />";
               }
               close(OUTPUT);
           } elsif ($ENV{'cgi.file'} =~ m|\.tar\.gz$|i) {
               open(OUTPUT, "tar -zxpvf $ENV{'cgi.file'} 2> /dev/null |");
               while (<OUTPUT>) {
                   print "$_<br />";
               }
               close(OUTPUT);
           } elsif ($ENV{'cgi.file'} =~ m|\.tar\.bz2$|i) {
               open(OUTPUT, "tar -jxpvf $ENV{'cgi.file'} 2> /dev/null |");
               while (<OUTPUT>) {
                   print "$_<br />";
               }
               close(OUTPUT);
           } elsif ($ENV{'cgi.file'} =~ m|\.bz2$|i) {
               open(OUTPUT, "bunzip2 $ENV{'cgi.file'} 2> /dev/null |");
               while (<OUTPUT>) {
                   print "$_<br />";
               }
               close(OUTPUT);
           } elsif ($ENV{'cgi.file'} =~ m|\.tgz$|i) {
               open(OUTPUT, "tar -zxpvf $ENV{'cgi.file'} 2> /dev/null |");
               while (<OUTPUT>) {
                   print "$_<br />";
               }
               close(OUTPUT);
           } elsif ($ENV{'cgi.file'} =~ m|\.gz$|i) {
               open(OUTPUT, "gunzip $ENV{'cgi.file'} 2> /dev/null |");
               while (<OUTPUT>) {
                   print "$_<br />";
               }
               close(OUTPUT);
           } elsif ($ENV{'cgi.file'} =~ m|\.tar$|i) {
               open(OUTPUT, "tar -xpvf $ENV{'cgi.file'} 2> /dev/null |");
               while (<OUTPUT>) {
                   print "$_<br />";
               }
               close(OUTPUT);
           } 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>";
       }
 }  }
 else  
 {  
  $url = $ENV{'HTTP_REFERER'};  
  $url =~ m|/{2}|;  
  $url = $';  
  $url =~ m|/{1}|;  
  $referer = $`;  
  if($referer ne $ENV{'SERVER_NAME'})  
  { print "Content-type: text/html\n\n";  
  print "You are trying something that is not allowed, go to the real homeserver and try again";  
  }  
  else  
  {  
  $url = $';  
  $url =~ m|$ENV{'user.name'}/{1}|;  
  $url = $';  
  $url =~ m|\?{1}|;  
  $url = $`;  
  $path ="/home/$ENV{'user.name'}/public_html/";  
  $back_path = "";  
  while($url =~ m|/|)  
  {  
  $path .= $`;  
  $back_path .= $`;  
  $path .= "/";  
  $back_path .= "/";  
  $url = $';  
  }  
  chdir $path;  
  $filename=$url;  
  if($url =~ m|zip|){system "unzip -qq $filename &> /dev/null";}  
  elsif($url =~ m|tar.gz|){system "tar -zxpvf $filename &> /dev/null";}  
  elsif($url =~ m|tar.bz2|){system "tar -jxpvf $filename &> /dev/null";}  
  elsif($url =~ m|bz2|){system "bunzip2 $filename &> /dev/null";}  
  elsif($url =~ m|tgz|){system "tar -zxpvf $filename &> /dev/null";}  
  elsif($url =~ m|gz|){system "gunzip $filename &> /dev/null";}  
  elsif($url =~ m|tar|){system "tar -xpvf $filename &> /dev/null";}  
  }  
   
 }  
 print "Content-type: text/html\n\n";  
 print '<META http-equiv="refresh" content="0; URL=';  
 print "http://$ENV{'SERVER_NAME'}/~$ENV{'user.name'}/$back_path"; print '" >';   
   
   

Removed from v.1.2  
changed lines
  Added in v.1.11


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