File:  [LON-CAPA] / loncom / cgi / decompress.pl
Revision 1.5: download - view: text, annotated - select for diffs
Mon Nov 17 23:12:12 2003 UTC (20 years, 6 months ago) by taceyjo1
Branches: MAIN
CVS tags: HEAD
Ok, I re-wrote it, I am just saving my work, however, comments are appreciated... the refresh still needs a little work, and I need to remove a lot of debugging statements :0)

    1: #!/usr/bin/perl
    2: #
    3: # 
    4: # Copyright Michigan State University Board of Trustees
    5: #
    6: # This file is part of the LearningOnline Network with CAPA (LON-CAPA).
    7: #
    8: # LON-CAPA is free software; you can redistribute it and/or modify
    9: # it under the terms of the GNU General Public License as published by
   10: # the Free Software Foundation; either version 2 of the License, or
   11: # (at your option) any later version.
   12: #
   13: # LON-CAPA is distributed in the hope that it will be useful,
   14: # but WITHOUT ANY WARRANTY; without even the implied warranty of
   15: # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   16: # GNU General Public License for more details.
   17: #
   18: # You should have received a copy of the GNU General Public License
   19: # along with LON-CAPA; if not, write to the Free Software
   20: # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
   21: #
   22: # /home/httpd/cgi-bin/decompress.pl
   23: #
   24: # http://www.lon-capa.org/
   25: #
   26: # The LearningOnline Network with CAPA
   27: #
   28: # A CGI script that decompresses compressed files for mass uploading into
   29: # construction space
   30: ####
   31: use lib '/home/httpd/lib/perl';
   32: use LONCAPA::Configuration;
   33: use LONCAPA::loncgi();
   34: use Apache::lonnet;
   35: 
   36: if(! &LONCAPA::loncgi::check_cookie_and_load_env()){
   37:     print "Content-type: text/html\n\n";
   38:     print <<END;
   39: 	 <html><body>NO COOKIE!</body></html>
   40: END
   41: } else {
   42:     print "Content-type: text/html\n\n";
   43: print "<html><head></head><body>";
   44: print "$ENV{'cgi.path'}";
   45: print "<br>$ENV{'cgi.file'}";
   46: print "<br>$ENV{'user.name'}<br>";
   47: $path = $ENV{'cgi.path'};
   48: $path =~ m|/{1}|;
   49: $path = $'; #' stupid emacs
   50: $path =~ m|/{1}|;
   51: $path = $';
   52: $username = $`; #Hmm, can't use the enviroment for this, if you are a co-author.. so we work around it.
   53: $path2 = "/home/$username/public_html/";
   54: $path2 .=$path;
   55: $back_path = "";
   56: 	while($path =~ m|/|) {
   57: 	    $back_path .= $`;
   58: 	    $back_path .= "/";
   59: 	    $path = $'; #' stupid emacs
   60: 	}
   61: $path = "/home/$username/public_html";
   62: $path .= '/';
   63: $path .= $back_path;
   64: print "<br>path: $path<br>";
   65: print "back_path: $back_path <br>";
   66: print "path2: $path2 <br>";
   67: print "$path2<br>";
   68: if ( -r $path2){
   69: print "Good read access is allowed";
   70: print "<br><br>";
   71: $right = $ENV{'request.role'};
   72: $right =~ m|\.|;
   73: $right = $`;
   74: $filename = $ENV{'cgi.file'};
   75: if($right eq "ca" || $right eq "au") {
   76: chdir $path;
   77: if      ($filename =~ m|zip|) {
   78: 	    system "unzip -qq $path2 &> /dev/null";
   79: 	} elsif ($filename =~ m|tar.gz|) {
   80: 	    system "tar -zxpvf $path2 &> /dev/null";
   81: 	} elsif ($filename =~ m|tar.bz2|){
   82: 	   system "tar -jxpvf $path2 &> /dev/null";
   83: 	} elsif ($filename =~ m|bz2|){
   84: 	    system "bunzip2 $path2 &> /dev/null";
   85: 	} elsif ($filename =~ m|tgz|){
   86: 	    system "tar -zxpvf $path2 &> /dev/null";
   87: 	} elsif ($filename =~ m|gz|){
   88: 	    system "gunzip $path2 &> /dev/null";
   89: 	} elsif ($filename =~ m|tar|){
   90: 	    system "tar -xpvf $path2 &> /dev/null";
   91: 	}
   92: } 
   93: else {print "You don't have proper privledges";}
   94: }
   95: else { print "Read access not allowed!"; }
   96: print '<meta http-equiv="refresh" content="0; URL=';
   97: print "http://$ENV{'SERVER_NAME'}/~$username'}/$back_path"; print '" />';
   98: print '</body></html>';
   99: &Apache::lonnet::delenv(cgi.file);
  100: &Apache::lonnet::delenv(cgi.path);
  101: }

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