#!/usr/bin/perl -Tw # # lister - lists limited files to the web # drf5n 2/4/98 # # put your file in either %Good_Files or in %Secret_Files # as a (name, pathname) pair. # # %Secret_Files are parsed for PaSsWoRd =".*?" strings and replaced # with "......." # # # use strict; #System Environment $ENV{'ENV'} =""; $ENV{'TERM'} = "vt100"; $ENV{'PATH'}="/bin:/usr/bin:/usr/local/bin"; my ( $Boiler_Plate, $junk, $file, %Form_Data, $Library, $This_Script,$Log_Dir, $Script_Name, %Good_Files,$File_Path, %Secret_Files, $output, $key, ); $This_Script= (defined $ENV{"SCRIPT_NAME"})? $ENV{"SCRIPT_NAME"} : "/cgi-bin/lister"; $Library ="/home/drf5n/public_html/cgi-bin/Library"; require "$Library/drf_lib.pl"; require "$Library/cgi-lib.pl"; &ReadParse (\%Form_Data); $file ="lister.cgi"; $file=$Form_Data{"file"} if defined ($Form_Data{"file"}); %Good_Files = ( "lister.cgi", "lister.cgi", "finger.cgi","../finger.cgi", "who.cgi","../who.cgi", "dotemacs","../../.emacs", "hello.cgi","hello.cgi", "cpoint.cgi","cpoint.cgi", "tsStock.cgi","tsStock.cgi", "hello2.cgi","hello2.cgi", "stats.cgi","stats.cgi", "stats2.cgi","stats2.cgi", "status.cgi","status.cgi", "validate.cgi","validate.cgi", "arma.c","../../src/arma.c", "arma.cgi","arma.cgi", "plot.cgi","plot.cgi", "shew.cgi","shew.cgi", "dist.cgi","dist.cgi", "mvar.cgi","mvar.cgi", "mnormal.cgi","mnormal.cgi", "mnormal.cpp","../../src/mnormal.cpp", "covar.cpp","../../src/covar.cpp", "mcusum.cpp","../../src/mcusum.cpp", "t2.cpp","../../src/t2.cpp", "eigen.cgi","eigen.cgi", "eigen.cc","range/eigen.cc", "man.cgi","man.cgi", "inputtest.cgi","inputtest.cgi", "imagemapInterpolate.cgi","imagemapInterpolate.cgi", "monty.cgi","monty.cgi", "arlplot.cgi","../sas/arlplot.cgi", "do_runs.cgi","../sas/doruns", "cgi-lib.pl","Library/cgi-lib.pl", "cgi-lib.sol","Library/cgi-lib.sol", "date.pl","Library/date.pl", "drf_lib.pl","Library/drf_lib.pl", "mail-lib.pl","Library/mail-lib.pl", "wang_lib.pl","Library/wang_lib.pl", "who.cgi","who.cgi", "do_runs.cgi","../sas/do_runs.cgi", "runmaker.cgi","../sas/runmaker.cgi", ) ; # end %Good_Files %Secret_Files = ( "wb.cgi","wb.cgi", "acac/wb.cgi","../acac/wb.cgi", ) ; # end %Secret_Files $output = ""; foreach $key (sort keys(%Good_Files)) { foreach (split("\0", $Good_Files{$key})) { # ($out = $_) =~ s/\n/<br>\n/g; $output .= qq!<a href="$This_Script?file=$key">$key</a> | !; } } foreach $key (sort keys(%Secret_Files)) { foreach (split("\0", $Secret_Files{$key})) { $output .= qq!<a href="$This_Script?file=$key">$key</a> | !; } } print &PrintHeader, qq% <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html> <head> <title>cgi/perl scripts</title> <LINK REV=MADE HREF="mailto:drf5n\@virginia.edu"> </head> <body>%; if (defined $Form_Data{'v'}) {print &Boiler_Plate;} if(defined ($Good_Files{"$file"})) { $File_Path = $Good_Files{"$file"}; if ( -r $File_Path){ $junk = `cat $File_Path`; $junk= &Html_Escape($junk); print qq!<h2><a href="$File_Path">$File_Path</a> -- <a href="$This_Script?v">others</a> </h2> <pre><hr>$junk</pre>\n!; } else { print "<h1>I cannot read $File_Path</h1>"; } } elsif (defined ($Secret_Files{"$file"})) { $File_Path = $Secret_Files{"$file"}; if ( -r $File_Path){ $junk = `cat $File_Path`; $junk =~ s/(password\s*?=\s*?")(.+?)"/$1.........."/igs; $junk= &Html_Escape($junk); print qq!<h2><a href="$File_Path">$File_Path</a> -- <a href="This_Script?v">others</a> </h2> <pre><hr>$junk</pre>\n!; } else { print "<h1>I cannot read $File_Path</h1>"; } } else { print qq! <h1>Couldn't find $file in my list</h1> ! ;} print &HtmlBot; sub Boiler_Plate { return qq% <h1><a href="/~drf5n/">David Forrest</a>'s <a href="http://hoohoo.ncsa.uiuc.edu/cgi/overview.html">cgi</a>/<a href="http://www.perl.com/CPAN-local/doc/manual/html/pod/index.html">perl</a> scripts</h1> <a href="http:/~drf5n">drf5n</a>, <a href="$This_Script?file=lister.cgi">my source code</a>, <a href="validate.cgi">validate</a>, <a href="status.cgi">errors</a>, <a href="status.cgi?choice=9">/cgi-bin/</a>, <a href="http://www.sys.virginia.edu/outside/Web_Tools.html">Web Tools</a>, <hr>$output %; } 1;