summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2016-07-29 19:48:23 +0200
committerLudovic Courtès <ludo@gnu.org>2016-07-29 22:32:04 +0200
commitda2d893e324fcdd4ab9e3ccdd62d7aab520da3b5 (patch)
treea12247fb19480a74cb1429cf5bff992c77e3b072
parent31c995f8afbb3dc2913c9bfb17ea8de68cf804cb (diff)
size: Fix corner case with multiple items on the command line.
Fixes 'guix size foo bar' when 'foo' is in the local store and 'bar' isn't, which could lead to an incomplete requisite list. * guix/scripts/size.scm (requisites*): Partition ITEMS according to 'valid-path?'. Use 'substitutable-requisites' only on invalid items.
-rw-r--r--guix/scripts/size.scm11
1 files changed, 7 insertions, 4 deletions
diff --git a/guix/scripts/size.scm b/guix/scripts/size.scm
index f28832ce90a..ea259f37585 100644
--- a/guix/scripts/size.scm
+++ b/guix/scripts/size.scm
@@ -29,6 +29,7 @@
29 #:use-module (srfi srfi-1) 29 #:use-module (srfi srfi-1)
30 #:use-module (srfi srfi-9) 30 #:use-module (srfi srfi-9)
31 #:use-module (srfi srfi-11) 31 #:use-module (srfi srfi-11)
32 #:use-module (srfi srfi-26)
32 #:use-module (srfi srfi-34) 33 #:use-module (srfi srfi-34)
33 #:use-module (srfi srfi-37) 34 #:use-module (srfi srfi-37)
34 #:use-module (ice-9 match) 35 #:use-module (ice-9 match)
@@ -119,10 +120,12 @@ substitutes."
119information available in the local store or using information about 120information available in the local store or using information about
120substitutes." 121substitutes."
121 (lambda (store) 122 (lambda (store)
122 (guard (c ((nix-protocol-error? c) 123 (let-values (((local missing)
123 (values (substitutable-requisites store items) 124 (partition (cut valid-path? store <>) items)))
124 store))) 125 (values (delete-duplicates
125 (values (requisites store items) store)))) 126 (append (requisites store local)
127 (substitutable-requisites store missing)))
128 store))))
126 129
127(define (store-profile items) 130(define (store-profile items)
128 "Return as a monadic value a list of <profile> objects representing the 131 "Return as a monadic value a list of <profile> objects representing the