#!/usr/local/bin/perl # view.cgi # Output the contents of a file require './software-lib.pl'; $p = $ENV{'PATH_INFO'}; # Try to guess type from filename if ($p =~ /\.([^\.\/]+)$/) { $ext = lc($1); &get_miniserv_config(\%miniserv); open(MIME, $miniserv{'mimetypes'}); while() { s/#.*//g; if (/(\S+)\s+(.*)/) { foreach $e (split(/\s+/, $2)) { if ($ext eq $e) { $type = $1; last; } } } } close(MIME); } if (!$type) { # No idea .. use the 'file' command if (`file "$p"` =~ /text|script/) { $type = "text/plain"; } else { $type = "application/octet-stream"; } } # Dump the file if (!open(FILE, "<$p")) { print "Content-type: text/plain\n\n"; print &text('list_eview', $p, $!),"\n"; } else { @st = stat($p); print "Content-length: $st[7]\n"; print "Content-type: $type\n\n"; while(read(FILE, $buf, 1024)) { print $buf; } close(FILE); }