Tasks: fix parallel

This commit is contained in:
Michiel Borkent 2021-04-12 11:55:56 +02:00
parent 567b1b1c1f
commit 80a06a62f9

View file

@ -79,10 +79,12 @@
task-name))) task-name)))
(defn deref-task [dep] (defn deref-task [dep]
(format "(babashka.tasks/-wait %s)" dep)) (format "(def %s (babashka.tasks/-wait %s))" dep dep))
(defn wrap-depends [prog depends] (defn wrap-depends [prog depends parallel?]
(format "(do %s)" (str (str/join "\n" (map deref-task depends)) "\n" prog))) (if parallel?
(format "(do %s)" (str (str/join "\n" (map deref-task depends)) "\n" prog))
prog))
(defn assemble-task-1 (defn assemble-task-1
"Assembles task, does not process :depends." "Assembles task, does not process :depends."
@ -92,7 +94,7 @@
([task-name task parallel? last? depends] ([task-name task parallel? last? depends]
(cond (qualified-symbol? task) (cond (qualified-symbol? task)
(let [prog (format "(apply %s *command-line-args*)" task) (let [prog (format "(apply %s *command-line-args*)" task)
prog (wrap-depends prog depends) prog (wrap-depends prog depends parallel?)
prog (wrap-def task-name prog parallel? last?) prog (wrap-def task-name prog parallel? last?)
prog (format " prog (format "
(do (require (quote %s)) (do (require (quote %s))
@ -104,7 +106,7 @@
(let [t (:task task)] (let [t (:task task)]
(assemble-task-1 task-name t parallel? last? (:depends task))) (assemble-task-1 task-name t parallel? last? (:depends task)))
:else (let [task (pr-str task) :else (let [task (pr-str task)
prog (wrap-depends task depends)] prog (wrap-depends task depends parallel?)]
(wrap-def task-name prog parallel? last?))))) (wrap-def task-name prog parallel? last?)))))
(defn format-task [init prog] (defn format-task [init prog]