3
5
Fork 0
mirror of git://git.savannah.gnu.org/guix.git synced 2023-12-14 03:33:07 +01:00

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.
This commit is contained in:
Ludovic Courtès 2016-07-29 19:48:23 +02:00
parent 31c995f8af
commit da2d893e32
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5

View file

@ -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