Dereference vector aliases in task-args.
This commit is contained in:
parent
e4e65177f6
commit
3ff470363b
2 changed files with 13 additions and 12 deletions
|
@ -46,16 +46,18 @@
|
|||
[task-name]
|
||||
(utils/require-resolve (str "leiningen." task-name) task-name))
|
||||
|
||||
(defn task-args [args project]
|
||||
(let [task-name (first args)
|
||||
task (lookup-alias task-name project)
|
||||
task-obj (if (string? task)
|
||||
(lookup-task-var task)
|
||||
task)]
|
||||
(if (and (= "help" (aliases (second args)))
|
||||
(not (:pass-through-help (meta task-obj))))
|
||||
(defn- lookup-aliased-task-var [task-name project]
|
||||
(let [de-aliased (lookup-alias task-name project)]
|
||||
(if (vector? de-aliased)
|
||||
(lookup-aliased-task-var (first de-aliased) project)
|
||||
(lookup-task-var de-aliased))))
|
||||
|
||||
(defn task-args [[task-name & args] project]
|
||||
(let [task-var (lookup-aliased-task-var task-name project)]
|
||||
(if (and (= ["help"] (update-in (vec args) [0] aliases))
|
||||
(not (:pass-through-help (meta task-var))))
|
||||
["help" [task-name]]
|
||||
[task (rest args)])))
|
||||
[(name (:name (meta task-var))) (vec args)])))
|
||||
|
||||
(defn option-arg [str]
|
||||
(and str (cond (.startsWith str "--") (keyword str)
|
||||
|
|
|
@ -10,7 +10,6 @@
|
|||
alias-2 "uncle"
|
||||
project {:aliases {alias-1 alias
|
||||
alias-2 task-name}}]
|
||||
|
||||
(testing "with :pass-through-help meta"
|
||||
(testing "on a var"
|
||||
(are [res arg] (= res (task-args arg project))
|
||||
|
@ -24,9 +23,9 @@
|
|||
["help" [alias-1]] ["help" alias-1]
|
||||
["help" [alias-2]] ["help" alias-2]
|
||||
[task-name ["-h"]] [alias-2 "-h"]
|
||||
[[task-name] ["-?"]] [alias-1 "-?"]
|
||||
[task-name ["-?"]] [alias-1 "-?"]
|
||||
[task-name ["--help"]] [alias-2 "--help"]
|
||||
[[task-name] []] [alias-1]
|
||||
[task-name []] [alias-1]
|
||||
[task-name []] [alias-2])))))
|
||||
|
||||
(deftest test-matching-arity
|
||||
|
|
Loading…
Reference in a new issue