summaryrefslogtreecommitdiff
path: root/guix/scripts/graph.scm
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2019-03-23 15:10:37 +0100
committerLudovic Courtès <ludo@gnu.org>2019-03-23 18:15:36 +0100
commita53ecfc897a5490744ecc1bc72cabc1d3f5c434f (patch)
tree35c2e87ed03a09f6a3b20561baa5330d8115b130 /guix/scripts/graph.scm
parent2b81eac01e5828c6fce61b3cafc0f78e7a0ab891 (diff)
downloadguix-patches-a53ecfc897a5490744ecc1bc72cabc1d3f5c434f.tar
guix-patches-a53ecfc897a5490744ecc1bc72cabc1d3f5c434f.tar.gz
graph: Factorize calls to 'fold-packages'.
* guix/scripts/graph.scm (all-packages): New procedure. (%reverse-package-node-type, %reverse-bag-node-type): Use 'all-packages' instead of 'fold-packages'.
Diffstat (limited to 'guix/scripts/graph.scm')
-rw-r--r--guix/scripts/graph.scm14
1 files changed, 12 insertions, 2 deletions
diff --git a/guix/scripts/graph.scm b/guix/scripts/graph.scm
index d0d353ff9e..8fe81ad64b 100644
--- a/guix/scripts/graph.scm
+++ b/guix/scripts/graph.scm
@@ -111,11 +111,21 @@ name."
;;; Reverse package DAG.
;;;
+(define (all-packages) ;XXX: duplicated from (guix scripts refresh)
+ "Return the list of all the distro's packages."
+ (fold-packages (lambda (package result)
+ ;; Ignore deprecated packages.
+ (if (package-superseded package)
+ result
+ (cons package result)))
+ '()
+ #:select? (const #t))) ;include hidden packages
+
(define %reverse-package-node-type
;; For this node type we first need to compute the list of packages and the
;; list of back-edges. Since we want to do it only once, we use the
;; promises below.
- (let* ((packages (delay (fold-packages cons '())))
+ (let* ((packages (delay (all-packages)))
(back-edges (delay (run-with-store #f ;store not actually needed
(node-back-edges %package-node-type
(force packages))))))
@@ -223,7 +233,7 @@ GNU-BUILD-SYSTEM have zero dependencies."
(define %reverse-bag-node-type
;; Type for the reverse traversal of package nodes via the "bag"
;; representation, which includes implicit inputs.
- (let* ((packages (delay (package-closure (fold-packages cons '()))))
+ (let* ((packages (delay (package-closure (all-packages))))
(back-edges (delay (run-with-store #f ;store not actually needed
(node-back-edges %bag-node-type
(force packages))))))