[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>';