#!/usr/local/bin/perl use File::Basename; $script=$ENV{'SCRIPT_NAME'}; # if there's a SCRIPT_NAME, assume we're running in CGI, else batch-cmd if ( $script && dirname( $script ) == "/etcbin" ) { $tei2html = "/web/data/users/berkeley" ; $indexbase = "/users/berkeley" ; $indexltrs = "/users/berkeley/public/indexltrs.html" ; } else { $tei2html = dirname(dirname( $0 )); $indexbase = ".." ; $indexltrs = "indexltrs.html" ; } if ( basename( $0 ) =~ "^browse-cartermod" ) { $tei2html = $tei2html . "/cartermod.pl"; } elsif ( basename( $0 ) =~ "^browse-carter" ) { $tei2html = $tei2html . "/carter.pl"; } else { die "must be called as browse-cartermod* or browse-carter*" ; } $QS=$ENV{'QUERY_STRING'}; @QS = split(/&/,$QS); foreach $i (0 .. $#QS) { $QS[$i] =~ s/\+/ /g; ($key,$val) = split(/=/,$QS[$i],2); $key =~ s/%(..)/pack("c",hex($1))/ge; $val =~ s/%(..)/pack("c",hex($1))/ge; $QS{$key} .= "\0" if (defined($QS{$key})); $QS{$key} .= $val; } $imagedir=$QS{'images'}; $datadir=$QS{'data'}; $file="$datadir/$QS{'tag'}/$QS{'id'}"; open(FILE,"cat $file | tr -d '\012' |"); while(){ /([^<]*)<\/author>/ && ($author=$1); /([^<]*)<\/editor>/ && ($editor=$1); /([^<]*)<\/title>/ && ($maintitle=$1); /<title>([^<]*)<\/title>/ && ($title=$1); last if(/<body>/); } close(FILE); if($title eq "") { $title=$maintitle; } $title =~ s/\[.*\]//g; print STDOUT <<"EndofHeader"; Content-type: text/html <HTML> <head> <TITLE>$title Robert King Carter's Correspondence and Diary

   A Collection Transcribed
        and Digitized
   by Edmund Berkeley, Jr.


List of Letters | About This Collection

Electronic Text Center, University of Virginia Library


EndofHeader if ($QS{'tag'} eq "private") { &CheckUser; } if ($QS{'tag'} eq "undone" ) { &CheckUser; } open(FILE,"cat $file | tr -d '\012' | $tei2html $imagedir $QS{'tag'} |"); while() { print; } close(FILE); print "\n"; sub CheckUser { local($source)=$ENV{'REMOTE_ADDR'}; local($host)=$ENV{'REMOTE_HOST'}; local($domain,$machine)=($source=~ /([0-9]*\.[0-9]*)\.(.*)/); if ($domain eq "128.143" || $domain eq "137.54") { return 1; } else { print "Sorry, you haven't permission!\n"; print ""; die; } }