task integration
This commit is contained in:
parent
1b3adaaf64
commit
8d24f70d73
2 changed files with 30 additions and 12 deletions
|
|
@ -16,5 +16,8 @@
|
||||||
(def var-meta (meta (resolve '%1$s/%2$s)))
|
(def var-meta (meta (resolve '%1$s/%2$s)))
|
||||||
(def cli-opts (babashka.cli/merge-opts (:org.babashka/cli ns-meta) (:org.babashka/cli var-meta)))
|
(def cli-opts (babashka.cli/merge-opts (:org.babashka/cli ns-meta) (:org.babashka/cli var-meta)))
|
||||||
(def opts (babashka.cli/parse-opts *command-line-args* cli-opts))
|
(def opts (babashka.cli/parse-opts *command-line-args* cli-opts))
|
||||||
|
(def task-exec-args (:exec-args (babashka.tasks/current-task)))
|
||||||
|
(def cli-exec-args (:exec-args cli-opts))
|
||||||
|
(def opts (babashka.cli/merge-opts cli-exec-args task-exec-args opts))
|
||||||
(%1$s/%2$s opts)"
|
(%1$s/%2$s opts)"
|
||||||
ns var-name))
|
ns var-name))
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,8 @@
|
||||||
(ns babashka.impl.tasks
|
(ns babashka.impl.tasks
|
||||||
(:require [babashka.deps :as deps]
|
(:require
|
||||||
[babashka.impl.common :refer [ctx bb-edn debug]]
|
[babashka.deps :as deps]
|
||||||
|
[babashka.impl.cli :as cli]
|
||||||
|
[babashka.impl.common :refer [bb-edn ctx debug]]
|
||||||
[babashka.impl.process :as pp]
|
[babashka.impl.process :as pp]
|
||||||
[babashka.process :as p]
|
[babashka.process :as p]
|
||||||
[clojure.core.async :refer [<!!]]
|
[clojure.core.async :refer [<!!]]
|
||||||
|
|
@ -10,7 +12,8 @@
|
||||||
[rewrite-clj.parser :as parser]
|
[rewrite-clj.parser :as parser]
|
||||||
[rewrite-clj.zip :as zip]
|
[rewrite-clj.zip :as zip]
|
||||||
[sci.core :as sci])
|
[sci.core :as sci])
|
||||||
(:import [clojure.core.async.impl.channels ManyToManyChannel]))
|
(:import
|
||||||
|
[clojure.core.async.impl.channels ManyToManyChannel]))
|
||||||
|
|
||||||
(defn -chan? [x]
|
(defn -chan? [x]
|
||||||
(instance? ManyToManyChannel x))
|
(instance? ManyToManyChannel x))
|
||||||
|
|
@ -264,6 +267,9 @@
|
||||||
(when-not (resolve 'run)
|
(when-not (resolve 'run)
|
||||||
(intern *ns* 'run babashka.tasks/run))
|
(intern *ns* 'run babashka.tasks/run))
|
||||||
|
|
||||||
|
(when-not (resolve 'exec)
|
||||||
|
(intern *ns* (with-meta 'exec {:macro true}) @(var babashka.tasks/exec)))
|
||||||
|
|
||||||
%s
|
%s
|
||||||
%s
|
%s
|
||||||
|
|
||||||
|
|
@ -451,6 +457,14 @@
|
||||||
(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
|
||||||
|
([_ _ fq-sym]
|
||||||
|
(let [ns (namespace fq-sym)
|
||||||
|
var-name (name fq-sym)
|
||||||
|
snippet (cli/exec-fn-snippet ns var-name)]
|
||||||
|
(prn snippet)
|
||||||
|
`(load-string ~snippet))))
|
||||||
|
|
||||||
(def tasks-namespace
|
(def tasks-namespace
|
||||||
{'shell (sci/copy-var shell sci-ns)
|
{'shell (sci/copy-var shell sci-ns)
|
||||||
'clojure (sci/copy-var clojure sci-ns)
|
'clojure (sci/copy-var clojure sci-ns)
|
||||||
|
|
@ -461,4 +475,5 @@
|
||||||
'current-task current-task
|
'current-task current-task
|
||||||
'current-state state
|
'current-state state
|
||||||
'run (sci/copy-var run sci-ns)
|
'run (sci/copy-var run sci-ns)
|
||||||
|
'exec (sci/copy-var exec sci-ns)
|
||||||
#_#_'log log})
|
#_#_'log log})
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue