From 96dc8f3527a6ac0c84b51f7a0cac1d8052cf0e72 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= <ludo@gnu.org>
Date: Mon, 6 Nov 2017 23:21:08 +0100
Subject: [PATCH] packages: 'fold-packages' takes #:select? parameter.

* gnu/packages.scm (fold-packages): Add #:select? parameter and honor it.
---
 gnu/packages.scm | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/gnu/packages.scm b/gnu/packages.scm
index b4ac6661ca..97e6cb347f 100644
--- a/gnu/packages.scm
+++ b/gnu/packages.scm
@@ -142,13 +142,13 @@ for system '~a'")
 
 (define* (fold-packages proc init
                         #:optional
-                        (modules (all-modules (%package-module-path))))
+                        (modules (all-modules (%package-module-path)))
+                        #:key (select? (negate hidden-package?)))
   "Call (PROC PACKAGE RESULT) for each available package defined in one of
-MODULES, using INIT as the initial value of RESULT.  It is guaranteed to never
-traverse the same package twice."
+MODULES that matches SELECT?, using INIT as the initial value of RESULT.  It
+is guaranteed to never traverse the same package twice."
   (fold-module-public-variables (lambda (object result)
-                                  (if (and (package? object)
-                                           (not (hidden-package? object)))
+                                  (if (and (package? object) (select? object))
                                       (proc object result)
                                       result))
                                 init