diff options
author | Ludovic Courtès <ludo@gnu.org> | 2015-09-02 15:23:52 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2015-09-02 23:40:07 +0200 |
commit | 4c8f997a7d6f4c9d7eae73804e9784b4562eb213 (patch) | |
tree | 57218881248955596a4092d4216bec1a7f43b130 /guix/scripts | |
parent | 4650a77ea8b3ada17f94a4a3b2004f172d0a1498 (diff) | |
download | gnu-guix-4c8f997a7d6f4c9d7eae73804e9784b4562eb213.tar gnu-guix-4c8f997a7d6f4c9d7eae73804e9784b4562eb213.tar.gz |
graph: Add '--expression'.
* guix/scripts/graph.scm (%options, show-help): Add '--expression'.
(guix-graph): Call 'read/eval-package-expression' for 'expression'
pairs in OPTS.
* tests/guix-graph.sh: Add tests.
* doc/guix.texi (Invoking guix graph): Document it.
Diffstat (limited to 'guix/scripts')
-rw-r--r-- | guix/scripts/graph.scm | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/guix/scripts/graph.scm b/guix/scripts/graph.scm index 1719ffce68..2b671be131 100644 --- a/guix/scripts/graph.scm +++ b/guix/scripts/graph.scm @@ -380,6 +380,9 @@ given BACKEND. Use NODE-TYPE to traverse the DAG." (lambda (opt name arg result) (list-node-types) (exit 0))) + (option '(#\e "expression") #t #f + (lambda (opt name arg result) + (alist-cons 'expression arg result))) (option '(#\h "help") #f #f (lambda args (show-help) @@ -397,6 +400,8 @@ Emit a Graphviz (dot) representation of the dependencies of PACKAGE...\n")) -t, --type=TYPE represent nodes of the given TYPE")) (display (_ " --list-types list the available graph types")) + (display (_ " + -e, --expression=EXPR consider the package EXPR evaluates to")) (newline) (display (_ " -h, --help display this help and exit")) @@ -417,12 +422,14 @@ Emit a Graphviz (dot) representation of the dependencies of PACKAGE...\n")) (with-error-handling (let* ((opts (parse-command-line args %options (list %default-options))) - (specs (filter-map (match-lambda - (('argument . spec) spec) - (_ #f)) - opts)) (type (assoc-ref opts 'node-type)) - (packages (map specification->package specs))) + (packages (filter-map (match-lambda + (('argument . spec) + (specification->package spec)) + (('expression . exp) + (read/eval-package-expression exp)) + (_ #f)) + opts))) (with-store store (run-with-store store (mlet %store-monad ((nodes (mapm %store-monad |