blob: d4b5ef23359927770ab4a6ae53454f837219805a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
(** Various "housekeeping" functions *)
(** Log msg as fatal and exit immediately *)
let panic msg =
Lwt_log.fatal msg |> Lwt.ignore_result;
exit 1
(** Setup the default logger *)
let setup_logger daemonize log_file template =
(**
If log file is specified, log to the file whether we are a daemon or not
If we are a daemon and log file is not specified, log to syslog
If we are not a daemon and log file is not specified, log to stderr
*)
match log_file with
| None ->
if daemonize then
begin
Lwt_log.default := Lwt_log.syslog ~template:template ~facility:`Daemon ();
Lwt.return_unit
end
else
begin
Lwt_log.default := Lwt_log.channel ~template:template ~close_mode:`Keep ~channel:Lwt_io.stderr ();
Lwt.return_unit
end
| Some file ->
let%lwt l = Lwt_log.file ~template:template ~mode:`Append ~file_name:file () in
Lwt_log.default := l; Lwt.return_unit
(** Load the config file or panic if it fails *)
let load_config path =
let result = Vyconf_config.load path in
match result with
| Ok cfg -> cfg
| Error err ->
panic (Printf.sprintf "Could not load the configuration file %s" err)
(** Check if appliance directories exist and panic if they don't *)
let check_dirs dirs =
let res = Directories.test dirs in
match res with
| Ok _ -> ()
| Error err -> panic err
|