]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/ocaml/getter/http_getter_env.ml
first moogle template checkin
[helm.git] / helm / ocaml / getter / http_getter_env.ml
index 39e83a965d71197a81e7f62f3de8395530659a1a..a7fe6be91d14701a69e0a150b31488a370e9c870 100644 (file)
@@ -47,13 +47,16 @@ let cic_dir         = lazy (Helm_registry.get "getter.cic_dir")
 let nuprl_dir       = lazy (Helm_registry.get "getter.nuprl_dir")
 let rdf_dir         = lazy (Helm_registry.get "getter.rdf_dir")
 let dtd_dir         = lazy (Helm_registry.get "getter.dtd_dir")
-let dtd_base_url    = lazy (Helm_registry.get "getter.dtd_base_url")
+let dtd_base_urls   = lazy (
+  let rex = Pcre.regexp "/*$" in
+  let raw_urls = Helm_registry.get_string_list "getter.dtd_base_urls" in
+  List.map (Pcre.replace ~rex) raw_urls)
 let port            = lazy (Helm_registry.get_int "getter.port")
 
 let _servers = ref None
 
 let servers =
-  lazy
+ function () ->
     (match !_servers with
     | None -> failwith "Getter not yet initialized: servers not available"
     | Some servers -> servers)
@@ -74,7 +77,7 @@ let reload_servers () = _servers := Some (load_servers ())
 let save_servers () =
   let oc = open_out (Lazy.force servers_file) in
   List.iter (fun (_,server) -> output_string oc (server ^ "\n"))
-    (Lazy.force servers);
+    (servers ());
   close_out oc
 
 let host =
@@ -92,8 +95,8 @@ let my_own_url =
 let cache_mode =
   lazy
     (match String.lowercase (Helm_registry.get "getter.cache_mode") with
-    | "normal" -> Enc_normal
-    | "gz" -> Enc_gzipped
+    | "normal" -> `Normal
+    | "gz" -> `Gzipped
     | mode -> failwith ("Invalid cache mode: " ^ mode))
 
 let reload () = reload_servers ()
@@ -117,10 +120,12 @@ servers_file:\t%s
 host:\t\t%s
 port:\t\t%d
 my_own_url:\t%s
-dtd_base_url:\t%s
+dtd_base_urls:\t%s
 cache_mode:\t%s
 servers:
 \t%s
+log_file:\t%s
+log_level:\t%d
 "
     version (Lazy.force cic_dbm) (Lazy.force nuprl_dbm) (Lazy.force rdf_dbm)
     (Lazy.force xsl_dbm) (Lazy.force xml_index)
@@ -128,15 +133,19 @@ servers:
     (Lazy.force nuprl_dir) (Lazy.force rdf_dir)
     (Lazy.force dtd_dir) (Lazy.force servers_file) (Lazy.force host)
     (Lazy.force port) (Lazy.force my_own_url)
-    (Lazy.force dtd_base_url)
-    (match Lazy.force cache_mode with Enc_normal -> "Normal" | Enc_gzipped -> "GZipped")
+    (String.concat " " (Lazy.force dtd_base_urls))
+    (match Lazy.force cache_mode with
+    | `Normal -> "Normal"
+    | `Gzipped -> "GZipped")
     (String.concat "\n\t" (* (position * server) list *)
       (List.map (fun (pos, server) -> sprintf "%3d: %s" pos server)
-        (Lazy.force servers)))
+        (servers ())))
+    (match Http_getter_logger.get_log_file () with None -> "None" | Some f -> f)
+    (Http_getter_logger.get_log_level ())
 
 let add_server ?position url =
   let new_servers =
-    let servers = Lazy.force servers in
+    let servers = servers () in
     match position with
     | None -> servers @ [-1, url];
     | Some p when p > 0 ->
@@ -146,6 +155,7 @@ let add_server ?position url =
           | hd :: tl (* when p > 1 *) -> hd :: (add_after (pos - 1) tl)
         in
         add_after p servers
+    | Some 0 -> (-1, url)::servers
     | Some _ -> assert false
   in
   _servers := Some new_servers;
@@ -153,7 +163,7 @@ let add_server ?position url =
   reload_servers ()
 
 let remove_server position =
-  _servers := Some (List.remove_assoc position (Lazy.force servers));
+  _servers := Some (List.remove_assoc position (servers ()));
   save_servers ();
   reload_servers ()