(*
- * Copyright (C) 2000, HELM Team.
+ * Copyright (C) 2003:
+ * Stefano Zacchiroli <zack@cs.unibo.it>
+ * for the HELM Team http://helm.cs.unibo.it/
*
* This file is part of HELM, an Hypertextual, Electronic
* Library of Mathematics, developed at the Computer Science
* MA 02111-1307, USA.
*
* For details, see the HELM World-Wide-Web page,
- * http://cs.unibo.it/helm/.
+ * http://helm.cs.unibo.it/
*)
open Http_getter_types;;
open Pxp_types;;
open Pxp_yacc;;
+let version = Http_getter_const.version
+
type setting_src =
| Environment (* read setting from environment variables *)
| Conffile (* read setting from configuration file *)
let conf_dir =
Pcre.replace ~pat:"/$" (Sys.getenv "HELM_CONFIGURATION_DIR")
in
- (conf_dir ^ "/configuration.xml", conf_dir)
+ (conf_dir ^ "/" ^ Http_getter_const.conffile, conf_dir)
with Not_found -> failwith "HELM_CONFIGURATION_DIR undefined"
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"
let xsl_index = safe_getenv "HTTP_GETTER_XSL_INDEXNAME"
let xml_dir = safe_getenv "HTTP_GETTER_XML_DIR"
let rdf_dir = safe_getenv "HTTP_GETTER_RDF_DIR"
-let xsl_dir = safe_getenv "HTTP_GETTER_XSL_DIR"
let dtd_dir = safe_getenv "HTTP_GETTER_DTD_DIR"
let port =
Pcre.replace ~pat:"\n+$" (Buffer.contents buf)
let my_own_url =
sprintf
- "http://%s%s/"
+ "http://%s%s" (* without trailing '/' *)
host
(if port = 80 then "" else (sprintf ":%d" port))
let dtd_base_url = safe_getenv "HTTP_GETTER_DTD_BASE_URL"
| "gz" -> Enc_gzipped
| mode -> failwith ("Invalid cache mode: " ^ mode)
+let reload () =
+ reload_servers ()
+
let dump_env () =
printf
-"xml_dbm:\t%s
+"HTTP Getter %s (the OCaml one!)
+
+xml_dbm:\t%s
rdf_dbm:\t%s
xsl_dbm:\t%s
xml_index:\t%s
xsl_index:\t%s
xml_dir:\t%s
rdf_dir:\t%s
-xsl_dir:\t%s
dtd_dir:\t%s
servers_file:\t%s
host:\t\t%s
servers:
\t%s
"
- xml_dbm rdf_dbm xsl_dbm xml_index rdf_index xsl_index
- xml_dir rdf_dir xsl_dir dtd_dir servers_file host port
- my_own_url dtd_base_url
+ 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
(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