From: Mathieu Othacehe <m.othacehe@gmail.com>
To: 26652@debbugs.gnu.org
Subject: bug#26652: [PATCH 2/2] scripts: refresh: Add -m manifest option.
Date: Tue, 25 Apr 2017 15:00:24 +0200 [thread overview]
Message-ID: <20170425130024.9481-2-m.othacehe@gmail.com> (raw)
In-Reply-To: <20170425130024.9481-1-m.othacehe@gmail.com>
* guix/scripts/refresh.scm (%options): Add -m option,
(show-help): document it,
(get-manifest-packages): new procedure,
(guix-refresh): use packages from manifest if specified, otherwise
keep the previous behaviour.
---
guix/scripts/refresh.scm | 29 ++++++++++++++++++++++++++---
1 file changed, 26 insertions(+), 3 deletions(-)
diff --git a/guix/scripts/refresh.scm b/guix/scripts/refresh.scm
index 4d3c695aa..36e339107 100644
--- a/guix/scripts/refresh.scm
+++ b/guix/scripts/refresh.scm
@@ -4,6 +4,7 @@
;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2015 Alex Kost <alezost@gmail.com>
;;; Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com>
+;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -27,6 +28,7 @@
#:use-module (guix store)
#:use-module (guix utils)
#:use-module (guix packages)
+ #:use-module (guix profiles)
#:use-module (guix upstream)
#:use-module (guix graph)
#:use-module (guix scripts graph)
@@ -87,6 +89,9 @@
(option '(#\L "list-updaters") #f #f
(lambda args
(list-updaters-and-exit)))
+ (option '(#\m "manifest") #t #f
+ (lambda (opt name arg result)
+ (alist-cons 'manifest arg result)))
(option '(#\e "expression") #t #f
(lambda (opt name arg result)
(alist-cons 'expression arg result)))
@@ -133,6 +138,8 @@ specified with `--select'.\n"))
-s, --select=SUBSET select all the packages in SUBSET, one of
`core' or `non-core'"))
(display (_ "
+ -m, --manifest=FILE select all the packages in FILE manifest"))
+ (display (_ "
-t, --type=UPDATER,... restrict to updates from the specified updaters
(e.g., 'gnu')"))
(display (_ "
@@ -346,6 +353,17 @@ dependent packages are rebuilt: ~{~a~^ ~}~%"
\f
;;;
+;;; Manifest.
+;;;
+
+(define (get-manifest-packages manifest)
+ "Return the list of packages in loaded MANIFEST."
+ (let* ((user-module (make-user-module '((guix profiles) (gnu))))
+ (manifest (load* manifest user-module)))
+ (manifest->packages manifest)))
+
+\f
+;;;
;;; Entry point.
;;;
@@ -416,8 +434,11 @@ update would trigger a complete rebuild."
;; the command line.
(warn? (or (assoc-ref opts 'argument)
(assoc-ref opts 'expression)))
-
- (packages
+ (manifest-packages
+ (match (assoc-ref opts 'manifest)
+ ((? string? manifest) (get-manifest-packages manifest))
+ (x #f)))
+ (args-packages
(match (filter-map (match-lambda
(('argument . spec)
;; Take either the specified version or the
@@ -438,7 +459,9 @@ update would trigger a complete rebuild."
result))
'())))
(some ; user-specified packages
- some))))
+ some)))
+ (packages
+ (or manifest-packages args-packages)))
(with-error-handling
(with-store store
(run-with-store store
--
2.12.2
next prev parent reply other threads:[~2017-04-25 13:01 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-04-25 12:58 bug#26652: [PATCH 0/2] fresh: add -m manifest option Mathieu Othacehe
2017-04-25 13:00 ` bug#26652: [PATCH 1/2] profiles: Add manifest->packages Mathieu Othacehe
2017-04-25 13:00 ` Mathieu Othacehe [this message]
2017-05-03 20:04 ` bug#26652: [PATCH 2/2] scripts: refresh: Add -m manifest option Ludovic Courtès
2017-05-04 11:46 ` Mathieu Othacehe
2017-04-25 16:47 ` bug#26652: [PATCH 1/2] profiles: Add manifest->packages Maxim Cournoyer
2017-04-25 17:00 ` Mathieu Othacehe
2017-04-25 18:50 ` Maxim Cournoyer
2017-05-03 19:59 ` Ludovic Courtès
2017-05-04 10:22 ` bug#26652: [PATCH] scripts: refresh: Add -m manifest option Mathieu Othacehe
2017-06-02 16:35 ` Ludovic Courtès
2017-06-04 7:09 ` Mathieu Othacehe
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170425130024.9481-2-m.othacehe@gmail.com \
--to=m.othacehe@gmail.com \
--cc=26652@debbugs.gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.