]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/http_getter/http_getter_env.ml
- added functions "add_server" and "remove_server" to dynamically adjust
[helm.git] / helm / http_getter / http_getter_env.ml
index 217ec346ee39c2c80c414eb5b0fdbf40f400972c..a531cfa7576952c2998f6e1cd1500ec8129dffef 100644 (file)
@@ -83,13 +83,15 @@ let parse_servers () =
 let servers = ref (parse_servers ())
 let reload_servers () = servers := parse_servers ()
 
-let xml_dbm = safe_getenv "HTTP_GETTER_XML_DBM"
+let cic_dbm = safe_getenv "HTTP_GETTER_CIC_DBM"
+let nuprl_dbm = safe_getenv "HTTP_GETTER_NUPRL_DBM"
 let rdf_dbm = safe_getenv "HTTP_GETTER_RDF_DBM"
 let xsl_dbm = safe_getenv "HTTP_GETTER_XSL_DBM"
 let xml_index = safe_getenv "HTTP_GETTER_XML_INDEXNAME"
 let rdf_index = safe_getenv "HTTP_GETTER_RDF_INDEXNAME"
 let xsl_index = safe_getenv "HTTP_GETTER_XSL_INDEXNAME"
-let xml_dir = safe_getenv "HTTP_GETTER_XML_DIR"
+let cic_dir = safe_getenv "HTTP_GETTER_CIC_DIR"
+let nuprl_dir = safe_getenv "HTTP_GETTER_NUPRL_DIR"
 let rdf_dir = safe_getenv "HTTP_GETTER_RDF_DIR"
 let dtd_dir = safe_getenv "HTTP_GETTER_DTD_DIR"
 
@@ -119,17 +121,19 @@ let cache_mode =
 let reload () =
   reload_servers ()
 
-let dump_env () =
-  printf
+let env_to_string () =
+  sprintf
 "HTTP Getter %s (the OCaml one!)
 
-xml_dbm:\t%s
+cic_dbm:\t%s
+nuprl_dbm:\t%s
 rdf_dbm:\t%s
 xsl_dbm:\t%s
 xml_index:\t%s
 rdf_index:\t%s
 xsl_index:\t%s
-xml_dir:\t%s
+cic_dir:\t%s
+nuprl_dir:\t%s
 rdf_dir:\t%s
 dtd_dir:\t%s
 servers_file:\t%s
@@ -143,9 +147,24 @@ conf_dir:\t%s
 servers:
 \t%s
 "
-    version xml_dbm rdf_dbm xsl_dbm xml_index rdf_index xsl_index
-    xml_dir rdf_dir dtd_dir servers_file host port my_own_url dtd_base_url
+    version cic_dbm nuprl_dbm rdf_dbm xsl_dbm xml_index rdf_index xsl_index
+    cic_dir nuprl_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);
-  flush stdout
+    conf_file conf_dir
+    (String.concat "\n\t" (* servers list prepended with server number *)
+      (List.map
+        (let idx = ref ~-1 in
+        fun server -> incr idx; sprintf "%3d: %s" !idx server)
+        !servers))
+
+let add_server ?position url =
+  (match position with
+  | Some p -> Http_getter_misc.add_line ~fname:servers_file ~position:p url
+  | None -> Http_getter_misc.add_line ~fname:servers_file url);
+  reload_servers ()
+
+let remove_server position =
+  Http_getter_misc.remove_line ~fname:servers_file position;
+  reload_servers ()