[LON-CAPA-cvs] cvs: loncom /cgi decompress.pl
taceyjo1
lon-capa-cvs@mail.lon-capa.org
Sat, 18 Oct 2003 17:16:22 -0000
taceyjo1 Sat Oct 18 13:16:22 2003 EDT
Added files:
/loncom/cgi decompress.pl
Log:
This is the first version of decompression support, it works (it decompress's) however, on refresh I get 2 top frames in construction space, so I still have to fix that up.. any ideas?
Index: loncom/cgi/decompress.pl
+++ loncom/cgi/decompress.pl
#!/usr/bin/perl
#
#
# Copyright Michigan State University Board of Trustees
#
# This file is part of the LearningOnline Network with CAPA (LON-CAPA).
#
# LON-CAPA is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# LON-CAPA is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with LON-CAPA; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
# /home/httpd/cgi-bin/decompress.pl
#
# http://www.lon-capa.org/
#
# The LearningOnline Network with CAPA
#
# A CGI script that decompresses compressed files for mass uploading into
# construction space
####
use lib '/home/httpd/lib/perl';
use LONCAPA::Configuration;
use LONCAPA::loncgi();
if(! &LONCAPA::loncgi::check_cookie_and_load_env()){
print "Content-type: text/html\n\n";
print <<END;
NO COOKIE!
END
}
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'}/priv/$ENV{'user.name'}/$back_path"; print '" target=_top>';