From ae397e20e7d93cd8bd78d9b24def8d7f6f5ce65d Mon Sep 17 00:00:00 2001 From: Michiel Borkent Date: Tue, 16 Mar 2021 11:44:31 +0100 Subject: [PATCH] wip --- src/babashka/cli.clj | 9 +++++++-- src/babashka/main.clj | 2 +- test-resources/bb.edn | 5 +++-- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/babashka/cli.clj b/src/babashka/cli.clj index 9109931b..ae94c131 100644 --- a/src/babashka/cli.clj +++ b/src/babashka/cli.clj @@ -1,5 +1,6 @@ (ns babashka.cli (:require [babashka.fs :as fs] + [babashka.process :as p] [clojure.edn :as edn] [clojure.string :as str])) @@ -143,8 +144,12 @@ (if (fs/exists? bb-edn-file) (let [bb-edn (edn/read-string (slurp bb-edn-file))] (if-let [task (get-in bb-edn [:tasks (keyword (subs task 1))])] - (let [cmd-line-args (get task :babashka/args)] + (let [cmd-line-args (get task :babashka/args) + proc (get task :babashka/process)] ;; this is for invoking babashka itself with command-line-args - (parse-opts (seq (concat cmd-line-args command-line-args)))) + (cond cmd-line-args + (parse-opts (seq (concat cmd-line-args command-line-args))) + proc (do (-> proc (p/process {:inherit true}) p/check) + {:exit-code 0}))) (error (str "No such task: " task) 1))) (error (str "File does not exist: " task) 1)))) diff --git a/src/babashka/main.clj b/src/babashka/main.clj index e3698e90..3b00bbb2 100644 --- a/src/babashka/main.clj +++ b/src/babashka/main.clj @@ -527,7 +527,7 @@ Use -- to separate script command line args from bb command line args. :preloads preloads :loader (:loader @cp/cp-state)})))) uberscript [nil 0] - (not task) [(repl/start-repl! sci-ctx) 0])) + :else [(repl/start-repl! sci-ctx) 0])) 1)] (flush) (when uberscript diff --git a/test-resources/bb.edn b/test-resources/bb.edn index e283adaf..78fd5598 100644 --- a/test-resources/bb.edn +++ b/test-resources/bb.edn @@ -1,2 +1,3 @@ -{:tasks {:eval-plus {:babashka/args ["-e" "(+ 1 2 3)"]} - :tree {:babashka/args [":clojure" "-Stree"]}}} +{:tasks {:eval-plus {:babashka/args ["-e" "(+ 1 2 3)"]} + :tree {:babashka/args [":clojure" "-Stree"]} + :count-files {:babashka/process ["bash" "-c" "ls | wc -l"] }}}