all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* [bug#55680] [PATCH] packages: Add 'specifications->packages'.
@ 2022-05-27 17:13 Antero Mejr via Guix-patches via
  2022-06-06 21:08 ` bug#55680: " Ludovic Courtès
  0 siblings, 1 reply; 2+ messages in thread
From: Antero Mejr via Guix-patches via @ 2022-05-27 17:13 UTC (permalink / raw)
  To: 55680; +Cc: Antero Mejr

* gnu/packages.scm (specifications->packages): New procedure.
* guix/scripts/home/import.scm (manifest+configuration-files->code): Use it.
---
Users of 'guix home' may not know the Scheme 'map' and 'compose' procedures.
However 'guix home import' creates boilerplate with those procedures.
Add 'specificiations->packages' procedure to make it more like a guix manifest.
'specfications->packages' can also help with guix system declarations.

 gnu/packages.scm             | 11 ++++++++++-
 guix/scripts/home/import.scm |  4 ++--
 2 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/gnu/packages.scm b/gnu/packages.scm
index 2ba838fd0a..0cc22e64f9 100644
--- a/gnu/packages.scm
+++ b/gnu/packages.scm
@@ -4,6 +4,7 @@
 ;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2016, 2017 Alex Kost <alezost@gmail.com>
 ;;; Copyright © 2016 Mathieu Lirzin <mthl@gnu.org>
+;;; Copyright © 2022 Antero Mejr <antero@mailbox.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -65,6 +66,7 @@ (define-module (gnu packages)
             specification->package+output
             specification->location
             specifications->manifest
+            specifications->packages
 
             package-unique-version-prefix
 
@@ -554,13 +556,20 @@ (define* (specification->package+output spec #:optional (output "out"))
                   (package-full-name package)
                   sub-drv))))))
 
+(define (specifications->packages specs)
+  "Given SPECS, a list of specifications such as \"emacs@25.2\" or
+\"guile:debug\", return a list of packages."
+  ;; This procedure exists so users of 'guix home' don't have to write out the
+  ;; (map (compose list specification->package+output)... boilerplate.
+  (map (compose list specification->package+output) specs))
+
 (define (specifications->manifest specs)
   "Given SPECS, a list of specifications such as \"emacs@25.2\" or
 \"guile:debug\", return a profile manifest."
   ;; This procedure exists mostly so users of 'guix package -m' don't have to
   ;; fiddle with multiple-value returns.
   (packages->manifest
-   (map (compose list specification->package+output) specs)))
+   (specifications->packages specs)))
 
 (define (package-unique-version-prefix name version)
   "Search among all the versions of package NAME that are available, and
diff --git a/guix/scripts/home/import.scm b/guix/scripts/home/import.scm
index 575fe8f688..825ccb1e73 100644
--- a/guix/scripts/home/import.scm
+++ b/guix/scripts/home/import.scm
@@ -3,6 +3,7 @@
 ;;; Copyright © 2021 Andrew Tropin <andrew@trop.in>
 ;;; Copyright © 2021-2022 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2022 Arjan Adriaanse <arjan@adriaan.se>
+;;; Copyright © 2022 Antero Mejr <antero@mailbox.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -170,8 +171,7 @@ (define (manifest+configuration-files->code manifest
                         ,@(delete-duplicates (concatenate modules)))
 
            (home-environment
-            (packages (map (compose list specification->package+output)
-                           ,packages))
+            (packages (specifications->packages ,packages))
             (services (list ,@services)))))))))
 
 (define* (import-manifest
-- 
2.36.1





^ permalink raw reply related	[flat|nested] 2+ messages in thread

* bug#55680: [PATCH] packages: Add 'specifications->packages'.
  2022-05-27 17:13 [bug#55680] [PATCH] packages: Add 'specifications->packages' Antero Mejr via Guix-patches via
@ 2022-06-06 21:08 ` Ludovic Courtès
  0 siblings, 0 replies; 2+ messages in thread
From: Ludovic Courtès @ 2022-06-06 21:08 UTC (permalink / raw)
  To: Antero Mejr; +Cc: 55680-done

Hi Antero,

Antero Mejr <antero@mailbox.org> skribis:

> * gnu/packages.scm (specifications->packages): New procedure.
> * guix/scripts/home/import.scm (manifest+configuration-files->code): Use it.

I adjusted the docstring and tests/home-import.scm and pushed as
7041fe0646a9603e7d1d6bde139a284146515917.

Thanks,
Ludo’.




^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2022-06-06 21:10 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-05-27 17:13 [bug#55680] [PATCH] packages: Add 'specifications->packages' Antero Mejr via Guix-patches via
2022-06-06 21:08 ` bug#55680: " Ludovic Courtès

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.