]> matita.cs.unibo.it Git - helm.git/blob - helm/scripts/init.d/loadPredefinedStylesheets.pl
script that loads predefined uwobo stylesheets
[helm.git] / helm / scripts / init.d / loadPredefinedStylesheets.pl
1 #!/usr/bin/perl -w
2 use strict;
3
4 my $confile = $ENV{"UWOBO_PANEL_CONF"} || die "UWOBO_PANEL_CONF not defined";
5
6 use LWP::UserAgent;
7 use URI::Escape;
8
9 sub getPredefinedStylesheets () {
10   my %stylesconf;
11   my $inForm = 0; # currenlty inside 'predefinedStylesheets' form
12   open(CONF, "< $confile") || die "Can't open $confile";
13   while(my $l = <CONF>) {
14     chomp($l);
15     if (not $inForm) {
16       if ($l =~ /<form name="predefinedStylesheets">/) {
17         $inForm = 1;
18       }
19     } else {  # in form
20       if ($l =~ /<\/form>/) {
21         $inForm = 0;
22       } elsif ($l =~ /<option value="[^"]+">/) {
23         my $val = $l;
24         $val =~ s/.*<option value="([^"]+)".*>/$1/;
25         my ($key, $ur, $use_getter) = split /,/, $val;
26         $stylesconf{$key}[0] = $ur;
27         if ($use_getter =~ /true/) {
28           $use_getter = 1;
29         } elsif ($use_getter =~ /false/) {
30           $use_getter = 0;
31         } else {
32           die "Unknown value '$use_getter' for 'use_getter' field.";
33         }
34         $stylesconf{$key}[1] = $use_getter;
35       }
36     }
37   }
38   close(CONF);
39   return %stylesconf;
40 }
41
42 sub main () {
43   my $getter_url = $ENV{"HELM_GETTER_URL"} || die "HELM_GETTER_URL not defined";
44   my $uwobo_url = $ENV{"HELM_UWOBO_URL"} || die "HELM_UWOBO_URL not defined";
45   my %styles = getPredefinedStylesheets();
46   my $request_url = "";
47   foreach my $k (keys %styles) {
48     $request_url .= "&" unless ($request_url eq "");
49     my $ur = $styles{$k}[0];
50     my $use_getter = $styles{$k}[1];
51     $request_url .= "bind=$k,";
52     my $tmp = "";
53     if ($use_getter) {
54       $tmp .= $getter_url . "getxslt?uri="
55     }
56     $tmp .= $ur;
57     $request_url .= uri_escape($tmp);
58   }
59   $request_url = $uwobo_url . "add?$request_url";
60   my $agent = LWP::UserAgent->new();
61   my $response = $agent->get($request_url);
62   print $response->as_string();
63 #   print "$request_url\n";
64 }
65
66 main();
67