Compare commits
1 commit
master
...
exec-as-fn
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b35a130fc1 |
2 changed files with 15 additions and 19 deletions
|
|
@ -8,18 +8,18 @@
|
||||||
(def cli-namespace
|
(def cli-namespace
|
||||||
(sci/copy-ns babashka.cli cns))
|
(sci/copy-ns babashka.cli cns))
|
||||||
|
|
||||||
(defn exec-fn-snippet [ns var-name]
|
(defn exec-fn-snippet [sym]
|
||||||
(format "
|
(format "
|
||||||
(do
|
(do
|
||||||
(require '%1$s)
|
|
||||||
(require '[babashka.cli])
|
(require '[babashka.cli])
|
||||||
(let [
|
(let [var (requiring-resolve '%1$s)
|
||||||
ns-meta (meta (find-ns '%1$s))
|
var-meta (meta var)
|
||||||
var-meta (meta (resolve '%1$s/%2$s))
|
ns (:ns (meta var))
|
||||||
cli-opts (babashka.cli/merge-opts (:org.babashka/cli ns-meta) (:org.babashka/cli var-meta))
|
ns-meta (meta ns)
|
||||||
opts (babashka.cli/parse-opts *command-line-args* cli-opts)
|
cli-opts (babashka.cli/merge-opts (:org.babashka/cli ns-meta) (:org.babashka/cli var-meta))
|
||||||
task-exec-args (:exec-args (babashka.tasks/current-task))
|
opts (babashka.cli/parse-opts *command-line-args* cli-opts)
|
||||||
cli-exec-args (:exec-args cli-opts)
|
task-exec-args (:exec-args (babashka.tasks/current-task))
|
||||||
opts (babashka.cli/merge-opts cli-exec-args task-exec-args opts)]
|
cli-exec-args (:exec-args cli-opts)
|
||||||
(%1$s/%2$s opts)))"
|
opts (babashka.cli/merge-opts cli-exec-args task-exec-args opts)]
|
||||||
ns var-name))
|
(var opts)))"
|
||||||
|
sym))
|
||||||
|
|
|
||||||
|
|
@ -457,13 +457,9 @@
|
||||||
(let [[[expr]] (assemble-task task parallel)]
|
(let [[[expr]] (assemble-task task parallel)]
|
||||||
(sci/eval-string* @ctx expr))))
|
(sci/eval-string* @ctx expr))))
|
||||||
|
|
||||||
(defn ^:macro exec
|
(defn exec
|
||||||
"This is a macro so it works correctly with :init"
|
([sym]
|
||||||
([_ _ sym]
|
(let [snippet (cli/exec-fn-snippet sym)]
|
||||||
(let [ns (namespace sym)
|
|
||||||
ns (or ns (symbol (str @sci/ns)))
|
|
||||||
var-name (name sym)
|
|
||||||
snippet (cli/exec-fn-snippet ns var-name)]
|
|
||||||
`(load-string ~snippet))))
|
`(load-string ~snippet))))
|
||||||
|
|
||||||
(def tasks-namespace
|
(def tasks-namespace
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue