diff options
author | Ludovic Courtès <ludo@gnu.org> | 2013-09-15 23:20:16 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2013-09-15 23:21:30 +0200 |
commit | 66018f1c338375796a8a2d5130bae5cdb9a48b5f (patch) | |
tree | dcc11051aefcc31be1ed0152d959ccdc7b0131ce | |
parent | 8ce3104e0e290b603599ec2e1b86bb82497c2665 (diff) |
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'.
-rw-r--r-- | guix/build/utils.scm | 39 | ||||
-rw-r--r-- | guix/scripts/pull.scm | 4 |
2 files changed, 22 insertions, 21 deletions
diff --git a/guix/build/utils.scm b/guix/build/utils.scm index 06e88b1ff8..8cc9c1ee1f 100644 --- a/guix/build/utils.scm +++ b/guix/build/utils.scm @@ -185,29 +185,32 @@ but ignore errors." lstat)) (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 (if (regexp? regexp) regexp (make-regexp regexp))) - (file-system-fold (const #t) - (lambda (file stat result) ; leaf - (if (regexp-exec file-rx (basename file)) - (cons file result) - result)) - (lambda (dir stat result) ; down - result) - (lambda (dir stat result) ; up - result) - (lambda (file stat result) ; skip - result) - (lambda (file stat errno result) - (format (current-error-port) "find-files: ~a: ~a~%" - file (strerror errno)) - #f) - '() - dir)) + ;; Sort the result to get deterministic results. + (sort (file-system-fold (const #t) + (lambda (file stat result) ; leaf + (if (regexp-exec file-rx (basename file)) + (cons file result) + result)) + (lambda (dir stat result) ; down + result) + (lambda (dir stat result) ; up + result) + (lambda (file stat result) ; skip + result) + (lambda (file stat errno result) + (format (current-error-port) "find-files: ~a: ~a~%" + file (strerror errno)) + #f) + '() + dir) + string<?)) ;;; diff --git a/guix/scripts/pull.scm b/guix/scripts/pull.scm index f3d87a63c0..adcaa49721 100644 --- a/guix/scripts/pull.scm +++ b/guix/scripts/pull.scm @@ -116,9 +116,7 @@ files." ;; download), we must build it first to avoid errors since ;; (gnutls) is unavailable. (cons (string-append out "/guix/build/download.scm") - - ;; Sort the file names to get deterministic results. - (sort (find-files out "\\.scm") string<?))) + (find-files out "\\.scm"))) ;; Remove the "fake" (guix config). (delete-file (string-append out "/guix/config.scm")) |