--- loncom/cgi/decompress.pl	2003/10/18 17:16:22	1.1
+++ loncom/cgi/decompress.pl	2003/11/19 14:58:14	1.7
@@ -1,7 +1,8 @@
 #!/usr/bin/perl
 #
-# 
+#
 # Copyright Michigan State University Board of Trustees
+# 
 #
 # This file is part of the LearningOnline Network with CAPA (LON-CAPA).
 #
@@ -28,56 +29,109 @@
 # 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!
+#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 lib '/home/httpd/lib/perl';
+use LONCAPA::loncgi ();
+if(! &LONCAPA::loncgi::check_cookie_and_load_env())
+{
+    print "Content-type: text/html\n\n";
+    print <<END;
+    <html><body>NO COOKIE!</body></html>
 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";
+    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|)
+        {
+            open(OUTPUT, "unzip $ENV{'cgi.file'} 2> /dev/null |");
+            while (<OUTPUT>)
+            {
+                print "$_<br />";
+            }
+            close(TRACE);
+        }
+        elsif ($ENV{'cgi.file'} =~ m|tar.gz|)
+        {
+            open(OUTPUT, "tar -zxpvf $ENV{'cgi.file'} 2> /dev/null |");
+            while (<OUTPUT>)
+            {
+                print "$_<br />";
+            }
+            close(TRACE);
+        }
+        elsif ($ENV{'cgi.file'} =~ m|tar.bz2|)
+        {
+            open(OUTPUT, "tar -jxpvf $ENV{'cgi.file'} 2> /dev/null |");
+            while (<OUTPUT>)
+            {
+                print "$_<br />";
+            }
+            close(TRACE);
+        }
+        elsif ($ENV{'cgi.file'} =~ m|bz2|)
+        {
+            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>";
+    }
 }
-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>';
+