~ruther/guix-local

57aff6476e3d4c9a2df5ea98f2caaed1472972de — Ludovic Courtès 10 years ago 29aca44
utils: Add 'every*'.

* guix/build/gnu-build-system.scm (every*): Move to...
* guix/build/utils.scm (every*): ... here.  New procedure.
2 files changed, 14 insertions(+), 12 deletions(-)

M guix/build/gnu-build-system.scm
M guix/build/utils.scm
M guix/build/gnu-build-system.scm => guix/build/gnu-build-system.scm +0 -12
@@ 409,18 409,6 @@ makefiles."
                                       strip-directories)))
                         outputs))))

(define (every* pred lst)
  "This is like 'every', but process all the elements of LST instead of
stopping as soon as PRED returns false.  This is useful when PRED has side
effects, such as displaying warnings or error messages."
  (let loop ((lst    lst)
             (result #t))
    (match lst
      (()
       result)
      ((head . tail)
       (loop tail (and (pred head) result))))))

(define* (validate-runpath #:key
                           (validate-runpath? #t)
                           (elf-directories '("lib" "lib64" "libexec"

M guix/build/utils.scm => guix/build/utils.scm +14 -0
@@ 59,10 59,12 @@
            list->search-path-as-string
            which

            every*
            alist-cons-before
            alist-cons-after
            alist-replace
            modify-phases

            with-atomic-file-replacement
            substitute
            substitute*


@@ 454,6 456,18 @@ PROGRAM could not be found."
;;; phases.
;;;

(define (every* pred lst)
  "This is like 'every', but process all the elements of LST instead of
stopping as soon as PRED returns false.  This is useful when PRED has side
effects, such as displaying warnings or error messages."
  (let loop ((lst    lst)
             (result #t))
    (match lst
      (()
       result)
      ((head . tail)
       (loop tail (and (pred head) result))))))

(define* (alist-cons-before reference key value alist
                            #:optional (key=? equal?))
  "Insert the KEY/VALUE pair before the first occurrence of a pair whose key