Subject: [PATCH 2/3] gnu-system: Accept subset with list of package names.
From: Jan Nieuwenhuizen <[email-masked]>
To: [email-masked]
Date: Sun, 17 Sep 2017 22:11:55 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

* examples/gnu-system.scm (hydra-jobs): Accept subset with list of package
names.
---
 examples/gnu-system.scm | 18 +++++++++++++++---
 1 file changed, 15 insertions(+), 3 deletions(-)

diff --git a/examples/gnu-system.scm b/examples/gnu-system.scm
index 4076786..ee2b571 100644
--- a/examples/gnu-system.scm
+++ b/examples/gnu-system.scm
@@ -2,6 +2,7 @@
 ;;;
 ;;; Copyright © 2012, 2013, 2014, 2015, 2016 Ludovic Courtès <[email-masked]>
 ;;; Copyright © 2016 Mathieu Lirzin <[email-masked]>
+;;; Copyright © 2017 Jan Nieuwenhuizen <[email-masked]>
 ;;;
 ;;; This file is part of Cuirass.
 ;;;
@@ -163,9 +164,10 @@ valid."
   "Return Hydra jobs."
   (define subset
     (match (assoc-ref arguments 'subset)
-      ("core" 'core)                    ; only build core packages
-      ("hello" 'hello)                  ; only build hello
-      (_ 'all)))                        ; build everything
+      ("core" 'core)                        ; only build core packages
+      ("hello" 'hello)                      ; only build hello
+      (((? string?) (? string?) ...) 'list) ; only build selected list of packages
+      (_ 'all)))                            ; build everything
 
   (define (cross-jobs system)
     (define (from-32-to-64? target)
@@ -226,6 +228,16 @@ valid."
                          (let ((hello (specification->package "hello")))
                            (list (package-job store (%job-name hello) hello system)))
                          '()))
+                    ((list)
+                     ;; Build selected list of packages only.
+                     (if (string=? system (%current-system))
+                         (let* ((names (assoc-ref arguments 'subset))
+                                (packages (map specification->package names)))
+                           (map (lambda (package)
+                                    (package-job store (%job-name package)
+                                                 package system))
+                                  packages))
+                         '()))
                     (else
                      (error "unknown subset" subset))))
                 %hydra-supported-systems)))
-- 
Jan Nieuwenhuizen <[email-masked]> | GNU LilyPond http://lilypond.org
Freelance IT http://JoyofSource.com | Avatar® http://AvatarAcademy.com