diff --git a/CHANGES.md b/CHANGES.md index b8e634beed..c2cf55a08c 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -41,6 +41,7 @@ New: - Added `"metadata_url"` to the default list of exported metadata (#2946) - Added log colors! - Added `list.filter_map`. +- Added `log.startup`. Changed: diff --git a/src/core/builtins/builtins_sys.ml b/src/core/builtins/builtins_sys.ml index 5f7021714d..e3ff28a0ed 100644 --- a/src/core/builtins/builtins_sys.ml +++ b/src/core/builtins/builtins_sys.ml @@ -271,7 +271,7 @@ let _ = Lang.add_builtin ~base:Modules.process "pid" ~category:`System [] Lang.int_t ~descr:"Get the process' pid." (fun _ -> Lang.int (Unix.getpid ())) -let _ = +let log_module = Lang.add_builtin "log" ~category:`Liquidsoap ~descr:"Log a message." [ ("label", Lang.string_t, Some (Lang.string "lang"), None); @@ -286,6 +286,22 @@ let _ = (Log.make [label])#f level "%s" msg; Lang.unit) +let _ = + Lang.add_builtin ~base:log_module "startup" ~category:`Liquidsoap + ~descr: + "Log a startup message. Unless this function is used, log messages \ + emitted at startup are discarded." + [ + ("label", Lang.string_t, Some (Lang.string "lang"), None); + ("", Lang.string_t, None, None); + ] + Lang.unit_t + (fun p -> + let msg = List.assoc "" p |> Lang.to_string in + let label = List.assoc "label" p |> Lang.to_string in + Startup.message "%s: %s" label msg; + Lang.unit) + let _ = (* Cheap implementation of "getopt" which does not really deserve its name * since it has little to do with the standards that getopt(3) implements.