[#796] Support map literal in task
This commit is contained in:
parent
3e9ddc55bb
commit
5ff9d8328a
2 changed files with 18 additions and 17 deletions
|
|
@ -100,22 +100,22 @@
|
||||||
(assemble-task-1 task-name task parallel? nil nil))
|
(assemble-task-1 task-name task parallel? nil nil))
|
||||||
([task-name task parallel? last?] (assemble-task-1 task-name task parallel? last? nil))
|
([task-name task parallel? last?] (assemble-task-1 task-name task parallel? last? nil))
|
||||||
([task-name task parallel? last? depends]
|
([task-name task parallel? last? depends]
|
||||||
(cond (qualified-symbol? task)
|
(let [[task depends] (if (map? task)
|
||||||
(let [prog (format "(apply %s *command-line-args*)" task)
|
[(:task task) (:depends task)]
|
||||||
prog (wrap-depends prog depends parallel?)
|
[task depends])]
|
||||||
prog (wrap-def task-name prog parallel? last?)
|
(if (qualified-symbol? task)
|
||||||
prog (format "
|
(let [prog (format "(apply %s *command-line-args*)" task)
|
||||||
|
prog (wrap-depends prog depends parallel?)
|
||||||
|
prog (wrap-def task-name prog parallel? last?)
|
||||||
|
prog (format "
|
||||||
(do (require (quote %s))
|
(do (require (quote %s))
|
||||||
%s)"
|
%s)"
|
||||||
(namespace task)
|
(namespace task)
|
||||||
prog)]
|
prog)]
|
||||||
prog)
|
prog)
|
||||||
(map? task)
|
(let [task (pr-str task)
|
||||||
(let [t (:task task)]
|
prog (wrap-depends task depends parallel?)]
|
||||||
(assemble-task-1 task-name t parallel? last? (:depends task)))
|
(wrap-def task-name prog parallel? last?))))))
|
||||||
:else (let [task (pr-str task)
|
|
||||||
prog (wrap-depends task depends parallel?)]
|
|
||||||
(wrap-def task-name prog parallel? last?)))))
|
|
||||||
|
|
||||||
(defn format-task [init requires prog]
|
(defn format-task [init requires prog]
|
||||||
(format "
|
(format "
|
||||||
|
|
|
||||||
|
|
@ -77,8 +77,6 @@
|
||||||
foo {:depends [bar]
|
foo {:depends [bar]
|
||||||
:task (fs/exists? ".")}}}
|
:task (fs/exists? ".")}}}
|
||||||
(is (= true (bb "foo")))))
|
(is (= true (bb "foo")))))
|
||||||
;; Note: this behavior with :when was complex, since the place where :when
|
|
||||||
;; is inserted isn't very intuitive here
|
|
||||||
;; This is why we don't support :when for now
|
;; This is why we don't support :when for now
|
||||||
#_(testing "depends with :when"
|
#_(testing "depends with :when"
|
||||||
(test-utils/with-config {:tasks {'quux (list 'spit out "quux\n")
|
(test-utils/with-config {:tasks {'quux (list 'spit out "quux\n")
|
||||||
|
|
@ -89,7 +87,10 @@
|
||||||
'foo {:depends ['quux 'bar]
|
'foo {:depends ['quux 'bar]
|
||||||
:task (list 'spit out "foo\n" :append true)}}}
|
:task (list 'spit out "foo\n" :append true)}}}
|
||||||
(bb "foo")
|
(bb "foo")
|
||||||
(is (= "quux\nbaz\nbar\nfoo\n" (slurp out)))))))
|
(is (= "quux\nbaz\nbar\nfoo\n" (slurp out)))))
|
||||||
|
(testing "map returned from task"
|
||||||
|
(test-utils/with-config '{:tasks {foo {:task {:a 1 :b 2}}}}
|
||||||
|
(is (= {:a 1 :b 2} (bb "foo")))))))
|
||||||
|
|
||||||
(deftest list-tasks-test
|
(deftest list-tasks-test
|
||||||
(test-utils/with-config {}
|
(test-utils/with-config {}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue