Update process

This commit is contained in:
Michiel Borkent 2022-12-04 20:20:41 +01:00
parent d681f9bc7f
commit a92ebfe68a
4 changed files with 16 additions and 33 deletions

View file

@ -5,4 +5,5 @@
babashka.impl.File/gen-wrapper-fn-2 clojure.core/def
babashka.impl.Pattern/gen-wrapper-fn-2 clojure.core/def
babashka.impl.Pattern/gen-constants clojure.core/declare}
:linters {:unsorted-required-namespaces {:level :warning}}}
:linters {:unsorted-required-namespaces {:level :warning}}
:hooks {:analyze-call {clojure.core/requiring-resolve hooks.mine/req-resolve}}}

@ -1 +1 @@
Subproject commit be047624edac65c3c648adace291bba38cd1a933
Subproject commit 36b2295bc5cdf10e7f2a09c53916c22b91fc8521

View file

@ -8,6 +8,10 @@
(def defaults (sci/copy-var process/*defaults* tns))
(defn process* [& args]
(binding [process/*defaults* @defaults]
(apply process/process* args)))
(defn process [& args]
(binding [process/*defaults* @defaults]
(apply process/process args)))
@ -17,7 +21,9 @@
(apply process/pb args)))
(def process-namespace
{'process (copy-var process tns)
{'parse-args (copy-var process/parse-args tns)
'process* (copy-var process/process* tns)
'process (copy-var process tns)
'check (copy-var process/check tns)
'pb (copy-var pb tns)
'start (copy-var process/start tns)

View file

@ -59,37 +59,13 @@
:err :inherit
:shutdown p/destroy-tree})
(defn shell [cmd & args]
(let [[prev cmd args]
(if (and (map? cmd)
(:proc cmd))
[cmd (first args) (rest args)]
[nil cmd args])
[opts cmd args]
(if (map? cmd)
[cmd (first args) (rest args)]
[nil cmd args])
opts (if-let [o (:out opts)]
(if (string? o)
(update opts :out io/file)
opts)
opts)
opts (if-let [o (:err opts)]
(if (string? o)
(update opts :err io/file)
opts)
opts)
opts (if prev
(assoc opts :in nil)
opts)
cmd (if (.exists (io/file cmd))
[cmd]
(p/tokenize cmd))
cmd (into cmd args)
local-log-level (:log-level opts)]
(defn shell [& args]
(let [{:keys [prev cmd opts]} (p/parse-args args)
local-log-level (:log-level opts)
opts (merge default-opts opts)]
(sci/binding [log-level (or local-log-level @log-level)]
(apply log-info cmd)
(handle-non-zero (pp/process prev cmd (merge default-opts opts)) opts))))
(apply log-info args)
(handle-non-zero (pp/process* {:opts opts :cmd cmd :prev prev}) opts))))
(defn clojure [cmd & args]
(let [[opts cmd args]