diff --git a/src/babashka/main.clj b/src/babashka/main.clj index caa3ebdd..d183a1bb 100644 --- a/src/babashka/main.clj +++ b/src/babashka/main.clj @@ -318,6 +318,7 @@ Everything after that is bound to *command-line-args*.")) :verbose? :classpath :main :uberscript] :as _opts} (parse-opts args) + _ (when main (System/setProperty "babashka.main" main)) read-next (fn [*in*] (if (pipe-signal-received?) ::EOF diff --git a/test-resources/babashka/src_for_classpath_test/my/main2.clj b/test-resources/babashka/src_for_classpath_test/my/main2.clj new file mode 100644 index 00000000..49a3c7f3 --- /dev/null +++ b/test-resources/babashka/src_for_classpath_test/my/main2.clj @@ -0,0 +1,4 @@ +(ns my.main2) + +(defn -main [& _args] + (System/getProperty "babashka.main")) diff --git a/test/babashka/classpath_test.clj b/test/babashka/classpath_test.clj index 733cf2e0..c03ade13 100644 --- a/test/babashka/classpath_test.clj +++ b/test/babashka/classpath_test.clj @@ -3,7 +3,8 @@ [babashka.test-utils :as tu] [clojure.edn :as edn] [clojure.java.io :as io] - [clojure.test :as t :refer [deftest is]])) + [clojure.test :as t :refer [deftest is testing]] + [clojure.string :as str])) (defn bb [input & args] (edn/read-string (apply tu/bb (when (some? input) (str input)) (map str args)))) @@ -28,7 +29,10 @@ (deftest main-test (is (= "(\"1\" \"2\" \"3\" \"4\")\n" - (tu/bb nil "--classpath" "test-resources/babashka/src_for_classpath_test" "-m" "my.main" "1" "2" "3" "4")))) + (tu/bb nil "--classpath" "test-resources/babashka/src_for_classpath_test" "-m" "my.main" "1" "2" "3" "4"))) + (testing "system property" + (is (= "\"my.main2\"" + (str/trim (tu/bb nil "--classpath" "test-resources/babashka/src_for_classpath_test" "-m" "my.main2")))))) (deftest uberscript-test (let [tmp-file (java.io.File/createTempFile "uberscript" ".clj")]