Compare commits

...

1 commit

Author SHA1 Message Date
Michiel Borkent
b35a130fc1 wip [skip-ci] 2022-07-29 16:56:35 +02:00
2 changed files with 15 additions and 19 deletions

View file

@ -8,18 +8,18 @@
(def cli-namespace
(sci/copy-ns babashka.cli cns))
(defn exec-fn-snippet [ns var-name]
(defn exec-fn-snippet [sym]
(format "
(do
(require '%1$s)
(require '[babashka.cli])
(let [
ns-meta (meta (find-ns '%1$s))
var-meta (meta (resolve '%1$s/%2$s))
(let [var (requiring-resolve '%1$s)
var-meta (meta var)
ns (:ns (meta var))
ns-meta (meta ns)
cli-opts (babashka.cli/merge-opts (:org.babashka/cli ns-meta) (:org.babashka/cli var-meta))
opts (babashka.cli/parse-opts *command-line-args* cli-opts)
task-exec-args (:exec-args (babashka.tasks/current-task))
cli-exec-args (:exec-args cli-opts)
opts (babashka.cli/merge-opts cli-exec-args task-exec-args opts)]
(%1$s/%2$s opts)))"
ns var-name))
(var opts)))"
sym))

View file

@ -457,13 +457,9 @@
(let [[[expr]] (assemble-task task parallel)]
(sci/eval-string* @ctx expr))))
(defn ^:macro exec
"This is a macro so it works correctly with :init"
([_ _ sym]
(let [ns (namespace sym)
ns (or ns (symbol (str @sci/ns)))
var-name (name sym)
snippet (cli/exec-fn-snippet ns var-name)]
(defn exec
([sym]
(let [snippet (cli/exec-fn-snippet sym)]
`(load-string ~snippet))))
(def tasks-namespace