[#865] Stable namespace

This commit is contained in:
Michiel Borkent 2021-05-30 11:36:30 +02:00
parent 94fc8298e6
commit ac576bd6e7
2 changed files with 16 additions and 2 deletions

View file

@ -225,6 +225,8 @@
prog (wrap-def task-map prog parallel? last?)] prog (wrap-def task-map prog parallel? last?)]
prog))))) prog)))))
(def rand-ns (delay (symbol (str "user-" (java.util.UUID/randomUUID)))))
(defn format-task [init extra-paths extra-deps requires prog] (defn format-task [init extra-paths extra-deps requires prog]
(format " (format "
%s ;; extra-paths %s ;; extra-paths
@ -255,7 +257,7 @@
(if (seq extra-deps) (if (seq extra-deps)
(format "(babashka.deps/add-deps '%s)" (pr-str {:deps extra-deps})) (format "(babashka.deps/add-deps '%s)" (pr-str {:deps extra-deps}))
"") "")
(gensym "user") @rand-ns
(if (seq requires) (if (seq requires)
(format "(:require %s)" (str/join " " requires)) (format "(:require %s)" (str/join " " requires))
"") "")

View file

@ -245,7 +245,19 @@
(binding [*foo* false (binding [*foo* false
*bar* true] *bar* true]
[*foo* *bar*]))}} [*foo* *bar*]))}}
(is (= [false true] (bb "run" "--prn" "a")))))) (is (= [false true] (bb "run" "--prn" "a")))))
(testing "stable namespace name"
(test-utils/with-config '{:tasks
{:init (do (def ^:dynamic *jdk*)
(def ^:dynamic *server*))
server [*jdk* *server*]
run-all (for [jdk [8 11 15]
server [:foo :bar]]
(binding [*jdk* jdk
*server* server]
(babashka.tasks/run 'server)))}}
(is (= '([8 :foo] [8 :bar] [11 :foo] [11 :bar] [15 :foo] [15 :bar])
(bb "run" "--prn" "run-all"))))))
(deftest list-tasks-test (deftest list-tasks-test
(test-utils/with-config {} (test-utils/with-config {}