]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/http_getter/http_getter_env.ml
- added support for 'reload' method which is supposed to be invoked on
[helm.git] / helm / http_getter / http_getter_env.ml
index 70696c5965f33dee94ced3c6a6a40721f0fee3e2..e97c89cbfb1b36be4fe3b678da31cc88234f77ef 100644 (file)
@@ -73,9 +73,11 @@ let safe_getenv ?(from = Both) var =
       | v -> return_value var v)))
 
 let servers_file = safe_getenv "HTTP_GETTER_SERVERS_FILE"
-let servers =
-  let cons hd tl = hd @ [ tl ] in
-  Http_getter_misc.fold_file cons [] servers_file
+let parse_servers () =
+  (let cons hd tl = hd @ [ tl ] in
+  Http_getter_misc.fold_file cons [] servers_file)
+let servers = ref (parse_servers ())
+let reload_servers () = servers := parse_servers ()
 
 let xml_dbm = safe_getenv "HTTP_GETTER_XML_DBM"
 let rdf_dbm = safe_getenv "HTTP_GETTER_RDF_DBM"
@@ -110,6 +112,9 @@ let cache_mode =
   | "gz" -> Enc_gzipped
   | mode -> failwith ("Invalid cache mode: " ^ mode)
 
+let reload () =
+  reload_servers ()
+
 let dump_env () =
   printf
 "xml_dbm:\t%s
@@ -136,6 +141,6 @@ servers:
     xml_dir rdf_dir dtd_dir servers_file host port
     my_own_url dtd_base_url
     (match cache_mode with Enc_normal -> "Normal" | Enc_gzipped -> "GZipped")
-    conf_file conf_dir (String.concat "\n\t" servers);
+    conf_file conf_dir (String.concat "\n\t" !servers);
   flush stdout