This commit is contained in:
parent
035a8268ba
commit
116ee1191c
3 changed files with 35 additions and 14 deletions
|
|
@ -14,6 +14,7 @@ A preview of the next release can be installed from
|
||||||
- Bump org.flatland/ordered to `1.15.12`.
|
- Bump org.flatland/ordered to `1.15.12`.
|
||||||
- Partially Fix [#1695](https://github.com/babashka/babashka/issues/1695): `--repl` arg handling should consume only one arg (itself) ([@bobisageek](https://github.com/bobisageek))
|
- Partially Fix [#1695](https://github.com/babashka/babashka/issues/1695): `--repl` arg handling should consume only one arg (itself) ([@bobisageek](https://github.com/bobisageek))
|
||||||
- Partially Fix [#1695](https://github.com/babashka/babashka/issues/1695): make `*command-line-args*` value available in the REPL ([@bobisageek](https://github.com/bobisageek))
|
- Partially Fix [#1695](https://github.com/babashka/babashka/issues/1695): make `*command-line-args*` value available in the REPL ([@bobisageek](https://github.com/bobisageek))
|
||||||
|
- Fix [#1686](https://github.com/babashka/babashka/issues/1686): do not fetch dependencies/invoke java for `version`, `help`, and `describe` options ([@bobisageek](https://github.com/bobisageek))
|
||||||
|
|
||||||
## 1.3.190 (2024-04-17)
|
## 1.3.190 (2024-04-17)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -139,7 +139,7 @@
|
||||||
(binding [*out* *err*]
|
(binding [*out* *err*]
|
||||||
(apply println msgs)))
|
(apply println msgs)))
|
||||||
|
|
||||||
(defn print-help [_ctx _command-line-args]
|
(defn print-help []
|
||||||
(println (str "Babashka v" version))
|
(println (str "Babashka v" version))
|
||||||
(println "
|
(println "
|
||||||
Usage: bb [svm-opts] [global-opts] [eval opts] [cmdline args]
|
Usage: bb [svm-opts] [global-opts] [eval opts] [cmdline args]
|
||||||
|
|
@ -215,8 +215,7 @@ Tooling:
|
||||||
File names take precedence over subcommand names.
|
File names take precedence over subcommand names.
|
||||||
Remaining arguments are bound to *command-line-args*.
|
Remaining arguments are bound to *command-line-args*.
|
||||||
Use -- to separate script command line args from bb command line args.
|
Use -- to separate script command line args from bb command line args.
|
||||||
When no eval opts or subcommand is provided, the implicit subcommand is repl.")
|
When no eval opts or subcommand is provided, the implicit subcommand is repl."))
|
||||||
[nil 0])
|
|
||||||
|
|
||||||
(defn print-doc [ctx command-line-args]
|
(defn print-doc [ctx command-line-args]
|
||||||
(let [arg (first command-line-args)
|
(let [arg (first command-line-args)
|
||||||
|
|
@ -832,13 +831,12 @@ Use bb run --help to show this help output.
|
||||||
sci/print-length @sci/print-length
|
sci/print-length @sci/print-length
|
||||||
;; when adding vars here, also add them to repl.clj and nrepl_server.clj
|
;; when adding vars here, also add them to repl.clj and nrepl_server.clj
|
||||||
]
|
]
|
||||||
(let [{version-opt :version
|
(let [{:keys [:shell-in :edn-in :shell-out :edn-out
|
||||||
:keys [:shell-in :edn-in :shell-out :edn-out
|
:file :command-line-args
|
||||||
:help :file :command-line-args
|
|
||||||
:expressions :stream? :init
|
:expressions :stream? :init
|
||||||
:repl :socket-repl :nrepl
|
:repl :socket-repl :nrepl
|
||||||
:debug :classpath :force?
|
:debug :classpath :force?
|
||||||
:main :uberscript :describe?
|
:main :uberscript
|
||||||
:jar :uberjar :clojure
|
:jar :uberjar :clojure
|
||||||
:doc :run :list-tasks
|
:doc :run :list-tasks
|
||||||
:print-deps :prepare]
|
:print-deps :prepare]
|
||||||
|
|
@ -1015,12 +1013,7 @@ Use bb run --help to show this help output.
|
||||||
exit-code
|
exit-code
|
||||||
(or exit-code
|
(or exit-code
|
||||||
(second
|
(second
|
||||||
(cond version-opt
|
(cond doc (print-doc sci-ctx command-line-args)
|
||||||
[(print-version) 0]
|
|
||||||
help (print-help sci-ctx command-line-args)
|
|
||||||
doc (print-doc sci-ctx command-line-args)
|
|
||||||
describe?
|
|
||||||
[(print-describe) 0]
|
|
||||||
repl (sci/binding [core/command-line-args command-line-args]
|
repl (sci/binding [core/command-line-args command-line-args]
|
||||||
[(repl/start-repl! sci-ctx) 0])
|
[(repl/start-repl! sci-ctx) 0])
|
||||||
nrepl [(start-nrepl! nrepl) 0]
|
nrepl [(start-nrepl! nrepl) 0]
|
||||||
|
|
@ -1109,6 +1102,15 @@ Use bb run --help to show this help output.
|
||||||
(uberjar/run uber-params))))))
|
(uberjar/run uber-params))))))
|
||||||
exit-code))))
|
exit-code))))
|
||||||
|
|
||||||
|
(defn exec-without-deps [cli-opts]
|
||||||
|
(let [{version-opt :version
|
||||||
|
:keys [help describe?]} cli-opts]
|
||||||
|
(cond
|
||||||
|
version-opt (print-version)
|
||||||
|
help (print-help)
|
||||||
|
describe? (print-describe)))
|
||||||
|
0)
|
||||||
|
|
||||||
(defn satisfies-min-version? [min-version]
|
(defn satisfies-min-version? [min-version]
|
||||||
(let [[major-current minor-current patch-current] version-data
|
(let [[major-current minor-current patch-current] version-data
|
||||||
[major-min minor-min patch-min] (parse-version min-version)]
|
[major-min minor-min patch-min] (parse-version min-version)]
|
||||||
|
|
@ -1149,6 +1151,10 @@ Use bb run --help to show this help output.
|
||||||
(str (fs/real-path f))
|
(str (fs/real-path f))
|
||||||
f))
|
f))
|
||||||
|
|
||||||
|
(defn deps-not-needed [opts]
|
||||||
|
(let [fast-path-opts [:version :help :describe?]]
|
||||||
|
(some #(contains? opts %) fast-path-opts)))
|
||||||
|
|
||||||
(defn main [& args]
|
(defn main [& args]
|
||||||
(let [bin-jar (binary-invoked-as-jar)
|
(let [bin-jar (binary-invoked-as-jar)
|
||||||
args (if bin-jar
|
args (if bin-jar
|
||||||
|
|
@ -1205,7 +1211,9 @@ Use bb run --help to show this help output.
|
||||||
(binding [*out* *err*]
|
(binding [*out* *err*]
|
||||||
(println (str "WARNING: this project requires babashka "
|
(println (str "WARNING: this project requires babashka "
|
||||||
min-bb-version " or newer, but you have: " version)))))
|
min-bb-version " or newer, but you have: " version)))))
|
||||||
(exec opts)))
|
(if (deps-not-needed opts)
|
||||||
|
(exec-without-deps opts)
|
||||||
|
(exec opts))))
|
||||||
|
|
||||||
(def musl?
|
(def musl?
|
||||||
"Captured at compile time, to know if we are running inside a
|
"Captured at compile time, to know if we are running inside a
|
||||||
|
|
|
||||||
|
|
@ -88,6 +88,18 @@
|
||||||
(is (not (main/satisfies-min-version? "300.0.0")))
|
(is (not (main/satisfies-min-version? "300.0.0")))
|
||||||
(is (not (main/satisfies-min-version? "300.0.0-SNAPSHOT"))))
|
(is (not (main/satisfies-min-version? "300.0.0-SNAPSHOT"))))
|
||||||
|
|
||||||
|
(deftest version-opt-test
|
||||||
|
(is (str/starts-with? (test-utils/bb nil "version")
|
||||||
|
"babashka v")))
|
||||||
|
|
||||||
|
(deftest help-opt-test
|
||||||
|
(is (every? #(str/includes? (test-utils/bb nil "help") %)
|
||||||
|
["Babashka v" "Help:"])))
|
||||||
|
|
||||||
|
(deftest describe-opt-test
|
||||||
|
(is (every? (partial contains? (bb nil "describe"))
|
||||||
|
[:babashka/version :feature/yaml :feature/logging])))
|
||||||
|
|
||||||
(deftest print-error-test
|
(deftest print-error-test
|
||||||
(is (thrown-with-msg? Exception #"java.lang.NullPointerException"
|
(is (thrown-with-msg? Exception #"java.lang.NullPointerException"
|
||||||
(bb nil "(subs nil 0 0)"))))
|
(bb nil "(subs nil 0 0)"))))
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue