let servers_file = safe_getenv "HTTP_GETTER_SERVERS_FILE"
let parse_servers () =
- (let cons hd tl = hd @ [ tl ] in
- Http_getter_misc.fold_file cons [] servers_file)
+ List.rev (Http_getter_misc.fold_file
+ (fun servers line ->
+ if Http_getter_misc.is_blank_line line then servers else line::servers)
+ []
+ servers_file)
+;;
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"
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
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 ()