From b0de4a79a48f20a1ed5d3c3d5c8bd4d862904395 Mon Sep 17 00:00:00 2001 From: Michiel Borkent Date: Sun, 31 Jul 2022 13:57:00 +0200 Subject: [PATCH] fix exec --- src/babashka/impl/cli.clj | 15 ++++++++++----- src/babashka/impl/tasks.clj | 3 +++ 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/babashka/impl/cli.clj b/src/babashka/impl/cli.clj index d5a4a9e6..e915057a 100644 --- a/src/babashka/impl/cli.clj +++ b/src/babashka/impl/cli.clj @@ -8,21 +8,26 @@ (def cli-namespace (sci/copy-ns babashka.cli cns)) -(defn exec-fn-snippet [sym] - (format " +(defn exec-fn-snippet + ([sym] (exec-fn-snippet sym nil)) + ([sym extra-opts] + (format " (do (require '[babashka.cli]) -(let [the-var (requiring-resolve `%1$s) +(let [extra-opts '%2$s + the-var (requiring-resolve `%1$s) the-var-meta (meta the-var) ns (:ns (meta the-var)) ns-meta (meta ns) ct (babashka.tasks/current-task) cli-opts (babashka.cli/merge-opts (:org.babashka/cli ns-meta) (:org.babashka/cli the-var-meta) - (:org.babashka/cli ct)) + (:org.babashka/cli ct) + extra-opts) opts (babashka.cli/parse-opts *command-line-args* cli-opts) task-exec-args (:exec-args ct) cli-exec-args (:exec-args cli-opts) opts (babashka.cli/merge-opts cli-exec-args task-exec-args opts)] (the-var opts)))" - sym)) + sym + (pr-str extra-opts)))) diff --git a/src/babashka/impl/tasks.clj b/src/babashka/impl/tasks.clj index 0be65b5a..a5d9592c 100644 --- a/src/babashka/impl/tasks.clj +++ b/src/babashka/impl/tasks.clj @@ -460,6 +460,9 @@ (defn exec ([sym] (let [snippet (cli/exec-fn-snippet sym)] + (sci/eval-string* @ctx snippet))) + ([sym extra-opts] + (let [snippet (cli/exec-fn-snippet sym extra-opts)] (sci/eval-string* @ctx snippet)))) (def tasks-namespace