Tasks: simplify logging
This commit is contained in:
parent
b71b5d2c50
commit
4c5e7cc86d
1 changed files with 19 additions and 21 deletions
|
|
@ -7,21 +7,6 @@
|
||||||
[sci.core :as sci]))
|
[sci.core :as sci]))
|
||||||
|
|
||||||
(def sci-ns (sci/create-ns 'babashka.tasks nil))
|
(def sci-ns (sci/create-ns 'babashka.tasks nil))
|
||||||
|
|
||||||
(defn- exit-non-zero [log-level proc]
|
|
||||||
(when-let [exit-code (some-> proc deref :exit)]
|
|
||||||
(when (not (zero? exit-code))
|
|
||||||
(when (contains? #{:info :error} log-level)
|
|
||||||
(binding [*out* *err*]
|
|
||||||
(println (str "> Terminating with non-zero exit code: " exit-code))))
|
|
||||||
(System/exit exit-code))))
|
|
||||||
|
|
||||||
(def default-opts
|
|
||||||
{:in :inherit
|
|
||||||
:out :inherit
|
|
||||||
:err :inherit
|
|
||||||
:shutdown p/destroy-tree})
|
|
||||||
|
|
||||||
(def log-level (sci/new-dynamic-var '*-log-level* :info {:ns sci-ns}))
|
(def log-level (sci/new-dynamic-var '*-log-level* :info {:ns sci-ns}))
|
||||||
(def task-name (sci/new-dynamic-var '*-task-name* nil {:ns sci-ns}))
|
(def task-name (sci/new-dynamic-var '*-task-name* nil {:ns sci-ns}))
|
||||||
|
|
||||||
|
|
@ -42,6 +27,18 @@
|
||||||
(binding [*out* *err*]
|
(binding [*out* *err*]
|
||||||
(println ">" (str/join " " strs))))))
|
(println ">" (str/join " " strs))))))
|
||||||
|
|
||||||
|
(defn- exit-non-zero [proc]
|
||||||
|
(when-let [exit-code (some-> proc deref :exit)]
|
||||||
|
(when (not (zero? exit-code))
|
||||||
|
(log-error "Terminating bb with non-zero exit code: " exit-code)
|
||||||
|
(System/exit exit-code))))
|
||||||
|
|
||||||
|
(def default-opts
|
||||||
|
{:in :inherit
|
||||||
|
:out :inherit
|
||||||
|
:err :inherit
|
||||||
|
:shutdown p/destroy-tree})
|
||||||
|
|
||||||
(defn shell [cmd & args]
|
(defn shell [cmd & args]
|
||||||
(let [[opts cmd args]
|
(let [[opts cmd args]
|
||||||
(if (map? cmd)
|
(if (map? cmd)
|
||||||
|
|
@ -59,8 +56,7 @@
|
||||||
local-log-level (:log-level opts)]
|
local-log-level (:log-level opts)]
|
||||||
(sci/binding [log-level (or local-log-level @log-level)]
|
(sci/binding [log-level (or local-log-level @log-level)]
|
||||||
(apply log-info cmd)
|
(apply log-info cmd)
|
||||||
(exit-non-zero log-level
|
(exit-non-zero (p/process cmd (merge default-opts opts))))))
|
||||||
(p/process cmd (merge default-opts opts))))))
|
|
||||||
|
|
||||||
(defn clojure [cmd & args]
|
(defn clojure [cmd & args]
|
||||||
(let [[opts cmd args]
|
(let [[opts cmd args]
|
||||||
|
|
@ -75,10 +71,12 @@
|
||||||
cmd (if (.exists (io/file cmd))
|
cmd (if (.exists (io/file cmd))
|
||||||
[cmd]
|
[cmd]
|
||||||
(p/tokenize cmd))
|
(p/tokenize cmd))
|
||||||
cmd (into cmd args)]
|
cmd (into cmd args)
|
||||||
(apply log-info cmd)
|
local-log-level (:log-level opts)]
|
||||||
(exit-non-zero log-level
|
(sci/binding [log-level (or local-log-level @log-level)]
|
||||||
(deps/clojure cmd (merge default-opts opts)))))
|
|
||||||
|
(apply log-info cmd)
|
||||||
|
(exit-non-zero (p/process cmd (merge default-opts opts))))))
|
||||||
|
|
||||||
(defn -wait [res]
|
(defn -wait [res]
|
||||||
(when res
|
(when res
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue