Partially revert, will revisit
This commit is contained in:
parent
43375d49a2
commit
bd857ae3e1
4 changed files with 33 additions and 68 deletions
2
process
2
process
|
|
@ -1 +1 @@
|
||||||
Subproject commit f277204a46e0c09440968b6ee88b641bf0c1e58e
|
Subproject commit 14e1259bb7caff3882921d6f6c71e6f08739113f
|
||||||
|
|
@ -1,9 +1,8 @@
|
||||||
(ns babashka.deps
|
(ns babashka.deps
|
||||||
(:require
|
(:require [babashka.impl.process :as pp]
|
||||||
[babashka.impl.process :as pp]
|
[babashka.process :as p]
|
||||||
[babashka.process :as p]
|
[borkdude.deps :as deps]
|
||||||
[borkdude.deps :as deps]
|
[sci.core :as sci]))
|
||||||
[sci.core :as sci]))
|
|
||||||
|
|
||||||
(defn clojure
|
(defn clojure
|
||||||
"Starts clojure similar to CLI. Use `rlwrap bb` for `clj`-like invocation.
|
"Starts clojure similar to CLI. Use `rlwrap bb` for `clj`-like invocation.
|
||||||
|
|
@ -28,27 +27,25 @@
|
||||||
|
|
||||||
(-> @(clojure) :exit) starts a clojure REPL, waits for it
|
(-> @(clojure) :exit) starts a clojure REPL, waits for it
|
||||||
to finish and returns the exit code from the process."
|
to finish and returns the exit code from the process."
|
||||||
[& args]
|
([] (clojure []))
|
||||||
(let [{:keys [cmd opts prev]} (p/parse-args args)
|
([args] (clojure args nil))
|
||||||
opts (merge {:in :inherit
|
([args opts]
|
||||||
:out :inherit
|
(let [opts (merge {:in :inherit
|
||||||
:err :inherit
|
:out :inherit
|
||||||
:shutdown p/destroy-tree}
|
:err :inherit
|
||||||
opts)]
|
:shutdown p/destroy-tree}
|
||||||
(binding [*in* @sci/in
|
opts)]
|
||||||
*out* @sci/out
|
(binding [*in* @sci/in
|
||||||
*err* @sci/err
|
*out* @sci/out
|
||||||
deps/*dir* (:dir opts)
|
*err* @sci/err
|
||||||
deps/*env* (:env opts)
|
deps/*dir* (:dir opts)
|
||||||
deps/*extra-env* (:extra-env opts)
|
deps/*env* (:env opts)
|
||||||
deps/*process-fn* (fn
|
deps/*extra-env* (:extra-env opts)
|
||||||
([cmd]
|
deps/*process-fn* (fn
|
||||||
(pp/process* {:cmd cmd :opts opts :prev prev}))
|
([cmd] (pp/process cmd opts))
|
||||||
([cmd _]
|
([cmd _] (pp/process cmd opts)))
|
||||||
(pp/process* {:cmd cmd :opts opts :prev prev})))
|
deps/*exit-fn* (fn
|
||||||
deps/*exit-fn* (fn
|
([_])
|
||||||
([_])
|
([_exit-code msg]
|
||||||
([_exit-code msg]
|
(throw (Exception. msg))))]
|
||||||
(throw (Exception. msg))))]
|
(apply deps/-main (map str args))))))
|
||||||
;; (.println System/err (str :args (str/join " " (map str args))))
|
|
||||||
(apply deps/-main (map str cmd)))))
|
|
||||||
|
|
|
||||||
|
|
@ -59,37 +59,13 @@
|
||||||
:err :inherit
|
:err :inherit
|
||||||
:shutdown p/destroy-tree})
|
:shutdown p/destroy-tree})
|
||||||
|
|
||||||
(defn shell [cmd & args]
|
(defn shell [& args]
|
||||||
(let [[prev cmd args]
|
(let [{:keys [prev cmd opts]} (p/parse-args args)
|
||||||
(if (and (map? cmd)
|
local-log-level (:log-level opts)
|
||||||
(:proc cmd))
|
opts (merge default-opts opts)]
|
||||||
[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)]
|
|
||||||
(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 args)
|
||||||
(handle-non-zero (pp/process prev cmd (merge default-opts opts)) opts))))
|
(handle-non-zero (pp/process* {:opts opts :cmd cmd :prev prev}) opts))))
|
||||||
|
|
||||||
(defn clojure [cmd & args]
|
(defn clojure [cmd & args]
|
||||||
(let [[opts cmd args]
|
(let [[opts cmd args]
|
||||||
|
|
|
||||||
|
|
@ -67,14 +67,6 @@ true
|
||||||
(p/check)
|
(p/check)
|
||||||
:out)
|
:out)
|
||||||
"))))
|
"))))
|
||||||
(testing "new syntax"
|
|
||||||
(is (= "6\n" (test-utils/normalize (bb "
|
|
||||||
(require '[babashka.deps :as deps])
|
|
||||||
(require '[babashka.process :as p])
|
|
||||||
(-> (babashka.deps/clojure {:out :string} \"-M\" \"-e\" \"(+ 1 2 3)\")
|
|
||||||
(p/check)
|
|
||||||
:out)
|
|
||||||
")))))
|
|
||||||
(when-not test-utils/native?
|
(when-not test-utils/native?
|
||||||
(is (thrown-with-msg? Exception #"Option changed" (bb "
|
(is (thrown-with-msg? Exception #"Option changed" (bb "
|
||||||
(require '[babashka.deps :as deps])
|
(require '[babashka.deps :as deps])
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue