diff options
author | Ludovic Courtès <ludo@gnu.org> | 2016-07-29 19:48:23 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2016-07-29 22:32:04 +0200 |
commit | da2d893e324fcdd4ab9e3ccdd62d7aab520da3b5 (patch) | |
tree | a12247fb19480a74cb1429cf5bff992c77e3b072 | |
parent | 31c995f8afbb3dc2913c9bfb17ea8de68cf804cb (diff) | |
download | gnu-guix-da2d893e324fcdd4ab9e3ccdd62d7aab520da3b5.tar gnu-guix-da2d893e324fcdd4ab9e3ccdd62d7aab520da3b5.tar.gz |
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.scm | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/guix/scripts/size.scm b/guix/scripts/size.scm index f28832ce90..ea259f3758 100644 --- a/guix/scripts/size.scm +++ b/guix/scripts/size.scm @@ -29,6 +29,7 @@ #:use-module (srfi srfi-1) #:use-module (srfi srfi-9) #:use-module (srfi srfi-11) + #:use-module (srfi srfi-26) #:use-module (srfi srfi-34) #:use-module (srfi srfi-37) #:use-module (ice-9 match) @@ -119,10 +120,12 @@ substitutes." information available in the local store or using information about substitutes." (lambda (store) - (guard (c ((nix-protocol-error? c) - (values (substitutable-requisites store items) - store))) - (values (requisites store items) store)))) + (let-values (((local missing) + (partition (cut valid-path? store <>) items))) + (values (delete-duplicates + (append (requisites store local) + (substitutable-requisites store missing))) + store)))) (define (store-profile items) "Return as a monadic value a list of <profile> objects representing the |