utils: 'find-files' returns a sorted list.

* guix/build/utils.scm (find-files): Sort the result lexicographically.
* guix/scripts/pull.scm (unpack): Don't sort the result of 'find-files'.
This commit is contained in:
Ludovic Courtès 2013-09-15 23:20:16 +02:00
parent 8ce3104e0e
commit 66018f1c33
2 changed files with 22 additions and 21 deletions

View File

@ -185,13 +185,15 @@ but ignore errors."
lstat)) lstat))
(define (find-files dir regexp) (define (find-files dir regexp)
"Return the list of files under DIR whose basename matches REGEXP." "Return the lexicographically sorted list of files under DIR whose basename
matches REGEXP."
(define file-rx (define file-rx
(if (regexp? regexp) (if (regexp? regexp)
regexp regexp
(make-regexp regexp))) (make-regexp regexp)))
(file-system-fold (const #t) ;; Sort the result to get deterministic results.
(sort (file-system-fold (const #t)
(lambda (file stat result) ; leaf (lambda (file stat result) ; leaf
(if (regexp-exec file-rx (basename file)) (if (regexp-exec file-rx (basename file))
(cons file result) (cons file result)
@ -207,7 +209,8 @@ but ignore errors."
file (strerror errno)) file (strerror errno))
#f) #f)
'() '()
dir)) dir)
string<?))
;;; ;;;

View File

@ -116,9 +116,7 @@ files."
;; download), we must build it first to avoid errors since ;; download), we must build it first to avoid errors since
;; (gnutls) is unavailable. ;; (gnutls) is unavailable.
(cons (string-append out "/guix/build/download.scm") (cons (string-append out "/guix/build/download.scm")
(find-files out "\\.scm")))
;; Sort the file names to get deterministic results.
(sort (find-files out "\\.scm") string<?)))
;; Remove the "fake" (guix config). ;; Remove the "fake" (guix config).
(delete-file (string-append out "/guix/config.scm")) (delete-file (string-append out "/guix/config.scm"))