]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/http_getter/http_getter.pl.in
version information
[helm.git] / helm / http_getter / http_getter.pl.in
index 0ea2c02e44456c8d6960e3816a1be7b0cb13e92e..89f496ac7bc201e6cadc50bb09812b347eace3cb 100755 (executable)
@@ -23,6 +23,8 @@
 # For details, see the HELM World-Wide-Web page,
 # http://cs.unibo.it/helm/.
 
+my $VERSION = "@VERSION@";
+
 # First of all, let's load HELM configuration
 use Env;
 my $HELM_LIB_DIR = $ENV{"HELM_LIB_DIR"};
@@ -35,7 +37,7 @@ if (defined ($HELM_LIB_DIR)) {
 }
 
 # Let's override the configuration file
-$styles_dir = $ENV{"HELM_STYLE_DIR"} if (defined ($ENV{"HELM_STYLE_DIR"}));
+$style_dir = $ENV{"HELM_STYLE_DIR"} if (defined ($ENV{"HELM_STYLE_DIR"}));
 $dtd_dir = $ENV{"HELM_DTD_DIR"} if (defined ($ENV{"HELM_DTD_DIR"}));
 
 # <ZACK>: TODO temporary, move this setting to configuration file
@@ -63,11 +65,19 @@ use Compress::Zlib;
 
 my $d = new HTTP::Daemon LocalPort => 8081;
 my $myownurl = $d->url;
+
+# Let's patch the returned URL
 $myownurl =~ s/\/$//; # chop the final slash
+my $myownport = $myownurl;
+$myownport =~ s/http:\/\/(.*):(.*)/$2/;
+$myownurl  =~ s/http:\/\/(.*):(.*)/$1/;
+($myownurl) = gethostbyname($myownurl);
+$myownurl = "http://".$myownurl.":".$myownport;
+
 tie(%map, 'DB_File', $uris_dbm.".db", O_RDONLY, 0664);
 print "Please contact me at: <URL:", $myownurl."/", ">\n";
 print "helm_dir: $helm_dir\n";
-print "styles_dir: $styles_dir\n";
+print "style_dir: $style_dir\n";
 print "dtd_dir: $dtd_dir\n";
 print "urls_of_uris.db: $uris_dbm.db\n";
 print "cache mode: $cachemode\n";
@@ -234,9 +244,24 @@ EOT
             } else {
                die "Could not find DTD!";
             }
-         } elsif ($http_method eq 'GET' and $http_path eq "/getxslt") {
+        } elsif ($http_method eq 'GET' and $http_path eq "/getstyleconf") {
+            my $filename = $inputuri;
+            $filename = $style_dir."/config/".$filename;
+            if (stat($filename)) {
+               open(FD, $filename) or die "Cannot open $filename\n";
+               $cont = "";
+               while(<FD>) {
+               s/DOCTYPE (.*) SYSTEM\s+"/DOCTYPE $1 SYSTEM "$myownurl\/getstyleconf?uri=/g;
+               $cont .= $_;
+              }
+               close(FD);
+               answer($c,$cont);
+            } else {
+               die "Could not find Style Configuration File!";
+            }
+        } elsif ($http_method eq 'GET' and $http_path eq "/getxslt") {
             my $filename = $inputuri;
-            $filename = $styles_dir."/".$filename;
+            $filename = $style_dir."/".$filename;
             print "XSLT: $inputuri ==> ($filename)\n";
             if (stat($filename)) {
                print "Using local copy\n";
@@ -270,6 +295,9 @@ EOT
            kill(USR1,getppid());
            print " done\n";
            answer($c,"<html><body><h1>Update done</h1></body></html>");
+       } elsif ($http_method eq 'GET' and $http_path eq "/version") {
+          print "Version requested!";
+           answer($c,"<html><body><h1>HTTP Getter Version ".$VERSION."</h1></body></html>");
         } else {
             print "\nINVALID REQUEST!!!!!\n";
             $c->send_error(RC_FORBIDDEN)