fix(tools/mg): Support applying args to mg run (empty-target)
With this, we can disambiguate the following `mg run` invocations: ```shell $ mg run :foo # run the virtual target, foo, with no args $ mg run -- :foo # run the empty target and pass the arg, :foo, to it ``` Change-Id: Id6395b36a4d8ef3f325937e322e1c27b8630b556 Reviewed-on: https://cl.tvl.fyi/c/depot/+/7408 Tested-by: BuildkiteCI Reviewed-by: tazjin <tazjin@tvl.su> Reviewed-by: sterni <sternenseemann@systemli.org>
This commit is contained in:
parent
9b7b0785ab
commit
1ea97c288e
1 changed files with 4 additions and 2 deletions
|
@ -21,6 +21,7 @@
|
||||||
|
|
||||||
(define usage #<<USAGE
|
(define usage #<<USAGE
|
||||||
usage: mg <command> [<target>]
|
usage: mg <command> [<target>]
|
||||||
|
mg run [<target>] [-- <arguments>]
|
||||||
|
|
||||||
target:
|
target:
|
||||||
a target specification with meaning inside of the repository. can
|
a target specification with meaning inside of the repository. can
|
||||||
|
@ -333,9 +334,10 @@ if you meant to pass these arguments to nix, please separate them with
|
||||||
(define (run args)
|
(define (run args)
|
||||||
(match args
|
(match args
|
||||||
[() (execute-run (empty-target))]
|
[() (execute-run (empty-target))]
|
||||||
|
[("--" . rest) (execute-run (empty-target) rest)]
|
||||||
|
[(target . ("--" . rest)) (execute-run (guarantee-success (parse-target target)) rest)]
|
||||||
;; TODO(sterni): flag for selecting binary name
|
;; TODO(sterni): flag for selecting binary name
|
||||||
[other (execute-run (guarantee-success (parse-target (car args)))
|
[_ (mg-error "usage: mg run [<target>] [-- <arguments>] (hint: use \"--\" to separate the `mg run [<target>]` invocation from the arguments you're passing to the built executable)")]))
|
||||||
(cdr args))]))
|
|
||||||
|
|
||||||
(define (path args)
|
(define (path args)
|
||||||
(match args
|
(match args
|
||||||
|
|
Loading…
Reference in a new issue