New, untyped, path-based configuration subsystem.
path' ::== \epsilon (* *)
| . <field-name> path' (* field access *)
| [ <index-nr> ] path' (* array index access *)
| [ + ] path' (* cons to array *)
| [ - ] path' (* cons away from array *)
| [ * ] path' (* reset array *)
path ::== path' (* *)
| <field_name> path' (* you can leave out the first dot *)
All functions failwith
on error. Warnings are generated in verbose
mode.
There is a "conf" trace
option that traces setting.
exception ConfigError of string
val building_spec : bool Batteries.ref
module type S = sig ... end
The type for gobConfig
module.
The implementation of the gobConfig
module.
include module type of struct include Impl end
The implementation of the gobConfig
module.
val get_json : string -> Yojson.Safe.t
Get JSON value at a given path.
val set_json : string -> Yojson.Safe.t -> unit
Directly set a JSON value; the result must conform to the schema.
val get_conf : unit -> Yojson.Safe.t
Equivalent to get_json ""
.
val set_conf : Yojson.Safe.t -> unit
Equivalent to set_conf ""
.
val get_int : string -> int
Functions to query conf variable of type int.
val set_int : string -> int -> unit
Functions to modify conf variables of type int.
val get_bool : string -> bool
Functions to query conf variable of type bool.
val set_bool : string -> bool -> unit
Functions to modify conf variables of type bool.
val get_string : string -> string
Functions to query conf variable of type string.
val set_string : string -> string -> unit
Functions to modify conf variables of type string.
val set_auto : string -> string -> unit
Functions to modify conf variables by trying to parse the value. The second argument must be valid Json except single quotes represent double quotes.
val get_list : string -> Yojson.Safe.t list
val get_string_list : string -> string list
val set_list : string -> Yojson.Safe.t list -> unit
val write_file : Fpath.t -> unit
Write the current configuration to filename
val merge_file : Fpath.t -> unit
Merge configurations from a file with current.
val merge : Yojson.Safe.t -> unit
Merge configurations from a JSON object with current.
val is_immutable : unit -> bool
Check whether modification of configuration is currently allowed.
val with_immutable_conf : (unit -> 'a) -> 'a
Run the given computation with modification to configuration disabled.
val earlyglobs : bool Batteries.ref
Another hack to see if earlyglobs is enabled