From 8f93826072dd6d96a6ab0d222df5415bf0f45b3d Mon Sep 17 00:00:00 2001 From: Michiel Borkent Date: Fri, 19 Mar 2021 12:14:04 +0100 Subject: [PATCH] wip --- src/babashka/impl/deps.clj | 8 ++++++-- src/babashka/main.clj | 4 +++- test-resources/bb.edn | 7 ++++++- 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/src/babashka/impl/deps.clj b/src/babashka/impl/deps.clj index ad642f3e..0ae75866 100644 --- a/src/babashka/impl/deps.clj +++ b/src/babashka/impl/deps.clj @@ -57,9 +57,13 @@ then used to resolve dependencies in babashka." ([deps-map] (add-deps deps-map nil)) ([deps-map {:keys [:aliases]}] - (let [args ["-Spath" "-Sdeps" (str deps-map)] + (let [deps-map (assoc-in deps-map [:aliases :org.babashka/remove-clojure] + '{:classpath-overrides {org.clojure/clojure "" + org.clojure/spec.alpha "" + org.clojure/core.specs.alpha ""}}) + args ["-Spath" "-Sdeps" (str deps-map)] args (cond-> args - aliases (conj (str "-A:" (str/join ":" aliases)))) + aliases (conj (str "-A:" (str/join ":" (cons ":org.babashka/remove-clojure" aliases))))) cp (with-out-str (apply deps/-main args))] (cp/add-classpath cp)))) diff --git a/src/babashka/main.clj b/src/babashka/main.clj index 99beb7f0..64ef5353 100644 --- a/src/babashka/main.clj +++ b/src/babashka/main.clj @@ -754,7 +754,9 @@ Use -- to separate script command line args from bb command line args. (handle-sigint!) (when-let [bb-edn @bb-edn] (when-let [paths (:paths bb-edn)] - (cp/add-classpath (str/join cp/path-sep paths)))) + (cp/add-classpath (str/join cp/path-sep paths))) + (when-let [deps (:deps bb-edn)] + (deps/add-deps {:deps deps}))) (if-let [dev-opts (System/getenv "BABASHKA_DEV")] (let [{:keys [:n]} (if (= "true" dev-opts) {:n 1} (edn/read-string dev-opts)) diff --git a/test-resources/bb.edn b/test-resources/bb.edn index b10bcd8c..95257e3c 100644 --- a/test-resources/bb.edn +++ b/test-resources/bb.edn @@ -1,4 +1,7 @@ -{:paths ["test-resources/bb-edn"] +{:paths ["test-resources/bb-edn"] ;; no-brainer to support this + :deps {medley/medley {:mvn/version "1.3.0"}} ;; no-brainer to support this + + ;; here comes the part that is currently uncertain :tasks {:count-files {:task/type :shell :args ["bash" "-c" "ls | wc -l"]} :bash {:task/type :babashka @@ -40,6 +43,8 @@ , ;;;; context (not implemented) + ;; the problem with this is the DSL nature which is very opiniated and + ;; maybe not so nice to learn for people who only want to write Clojure :put-answer-in-ctx {:type/task :babashka :args [:eval-plus 1 2 3] :out [:answer]}