X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Finterface%2Fhttp_getter%2Fhttp_getter.pl;h=1d99e65ce03bf5b552adf1c8e1a5451b07f03172;hb=d9b8d61ec58c992aa116db6bdd4175a4a9e6c56b;hp=cfe9a79ad736e79fb6b770d32c998a25cadebf2f;hpb=8bc2bd57ad4d9ea0fdd753e56616fd8f74cb78a2;p=helm.git diff --git a/helm/interface/http_getter/http_getter.pl b/helm/interface/http_getter/http_getter.pl index cfe9a79ad..1d99e65ce 100755 --- a/helm/interface/http_getter/http_getter.pl +++ b/helm/interface/http_getter/http_getter.pl @@ -18,9 +18,10 @@ use DB_File; my $cont = ""; my $d = new HTTP::Daemon LocalPort => 8081; -tie(%map, 'DB_File', 'urls_of_uris.db', O_RDONLY, 0664); +tie(%map, 'DB_File', $uris_dbm.".db", O_RDONLY, 0664); print "Please contact me at: url, ">\n"; print "helm_dir: $helm_dir\n"; +print "urls_of_uris.db: $uris_dbm.db\n"; $SIG{CHLD} = "IGNORE"; # do not accumulate defunct processes while (my $c = $d->accept) { if (fork() == 0) { @@ -147,19 +148,38 @@ EOT $res->content($merged); $c->send_response($res); } elsif ($http_method eq 'GET' and $http_path eq "/getwithtypes") { - my $do_annotate = ($cicuri =~ /\.types$/); + my $mode; + my $do_annotate; + if ($cicuri =~ /\.types$/) { + $do_annotate = 1; + $mode = "types"; + } elsif ($cicuri =~ /\.ann$/) { + $do_annotate = 1; + $mode = "ann"; + } else { + $do_annotate = 0; + } my $target_to_annotate = $cicuri; - $target_to_annotate =~ s/(.*)\.types$/$1/ if $do_annotate; + if ($mode eq "types") { + $target_to_annotate =~ s/(.*)\.types$/$1/; + } elsif ($mode eq "ann") { + $target_to_annotate =~ s/(.*)\.ann$/$1/; + } my $filename = $cicuri; $filename =~ s/cic:(.*)/$1/; $filename =~ s/theory:(.*)/$1/; my $filename_target = $helm_dir.$filename if $do_annotate; $filename = $helm_dir.$filename.".xml"; - $filename_target =~ s/(.*)\.types$/$1.xml/ if $do_annotate; + if ($mode eq "types") { + $filename_target =~ s/(.*)\.types$/$1.xml/; + } elsif ($mode eq "ann") { + $filename_target =~ s/(.*)\.ann$/$1.xml/; + } my $resolved = $map{$cicuri}; my $resolved_target = $map{$target_to_annotate} if $do_annotate; if ($do_annotate) { - print "GETWITHTYPES!!\n"; + print "GETWITHTYPES!!\n" if ($mode eq "types"); + print "GETWITHANN!!\n" if ($mode eq "ann"); print "($cicuri, $target_to_annotate) ==> ($resolved + $resolved_target) ($filename)\n"; } else { print "$cicuri ==> $resolved ($filename)\n"; @@ -168,17 +188,20 @@ EOT # Retrieves the annotation if (stat($filename)) { - print "Using local copy for the types\n"; + print "Using local copy for the types\n" if ($mode eq "types"); + print "Using local copy for the ann\n" if ($mode eq "ann"); open(FD, $filename); while() { $cont .= $_; } close(FD); } else { - print "Downloading the types\n"; + print "Downloading the types\n" if ($mode eq "types"); + print "Downloading the ann\n" if ($mode eq "ann"); $ua = LWP::UserAgent->new; $request = HTTP::Request->new(GET => "$resolved"); $response = $ua->request($request, \&callback); - print "Storing file for the types\n"; + print "Storing file for the types\n" if ($mode eq "types"); + print "Storing file for the ann\n" if ($mode eq "ann"); mkdirs($filename); open(FD, ">".$filename); print FD $cont; @@ -220,13 +243,21 @@ EOT $target =~ s/]*>//sg; $annotation =~ s/<\?xml [^?]*\?>//sg; $annotation =~ s/]*>//sg; + my $element, $endelement; + if ($mode eq "types") { + $element = ""; + $endelement = ""; + } elsif ($mode eq "ann") { + $element = ""; + $endelement = ""; + } my $merged = < $target - +$element $annotation - +$endelement EOT @@ -292,7 +323,6 @@ sub mkdirs my $tmp; foreach $dir (@dirs) { $tmp = ((defined($tmp)) ? $tmp = $tmp."\/".$dir : ""); - print $tmp."\n"; mkdir($tmp,0777); } rmdir($tmp);