summaryrefslogtreecommitdiff
path: root/ocaml/bin
diff options
context:
space:
mode:
Diffstat (limited to 'ocaml/bin')
-rw-r--r--ocaml/bin/dune11
-rw-r--r--ocaml/bin/main.ml16
2 files changed, 27 insertions, 0 deletions
diff --git a/ocaml/bin/dune b/ocaml/bin/dune
new file mode 100644
index 0000000..0f6768d
--- /dev/null
+++ b/ocaml/bin/dune
@@ -0,0 +1,11 @@
+(executable
+ (public_name advent_of_code)
+ (name main)
+ (libraries
+ domain
+ application
+ infrastructure
+ presentation
+ logs
+ logs.fmt)
+ (modes byte exe))
diff --git a/ocaml/bin/main.ml b/ocaml/bin/main.ml
new file mode 100644
index 0000000..cbfe6d2
--- /dev/null
+++ b/ocaml/bin/main.ml
@@ -0,0 +1,16 @@
+let env_log_level =
+ match Sys.getenv_opt "LOG_LEVEL" with
+ | None ->
+ Some Logs.Warning
+ | Some lvl -> (
+ match Logs.level_of_string lvl with Error _ -> None | Ok v -> v )
+
+let main () =
+ let log_level = env_log_level in
+ Logs.set_level log_level ;
+ Logs.set_reporter (Logs_fmt.reporter ()) ;
+ Logs.info (fun m ->
+ m "Started application with LOG_LEVEL=%s" (Logs.level_to_string log_level) ) ;
+ Presentation.Cli.run ()
+
+let () = if !Sys.interactive then () else exit (main ())