store: Add 'store-lower'.
* guix/store.scm (store-lower): New procedure. * tests/store.scm ("store-lower"): New test.
This commit is contained in:
parent
e87f0591f3
commit
023d9892c0
@ -99,6 +99,7 @@
|
|||||||
store-bind
|
store-bind
|
||||||
store-return
|
store-return
|
||||||
store-lift
|
store-lift
|
||||||
|
store-lower
|
||||||
run-with-store
|
run-with-store
|
||||||
%guile-for-build
|
%guile-for-build
|
||||||
text-file
|
text-file
|
||||||
@ -881,6 +882,12 @@ in the store monad."
|
|||||||
(procedure-property proc 'documentation))
|
(procedure-property proc 'documentation))
|
||||||
result)
|
result)
|
||||||
|
|
||||||
|
(define (store-lower proc)
|
||||||
|
"Lower PROC, a monadic procedure in %STORE-MONAD, to a \"normal\" procedure
|
||||||
|
taking the store as its first argument."
|
||||||
|
(lambda (store . args)
|
||||||
|
(run-with-store store (apply proc args))))
|
||||||
|
|
||||||
;;
|
;;
|
||||||
;; Store monad operators.
|
;; Store monad operators.
|
||||||
;;
|
;;
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
;;; GNU Guix --- Functional package management for GNU
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
;;; Copyright © 2012, 2013, 2014 Ludovic Courtès <ludo@gnu.org>
|
;;; Copyright © 2012, 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
@ -595,6 +595,12 @@ Deriver: ~a~%"
|
|||||||
(null? (valid-derivers %store file))
|
(null? (valid-derivers %store file))
|
||||||
(null? (referrers %store file))))))
|
(null? (referrers %store file))))))
|
||||||
|
|
||||||
|
(test-equal "store-lower"
|
||||||
|
"Lowered."
|
||||||
|
(let* ((add (store-lower text-file))
|
||||||
|
(file (add %store "foo" "Lowered.")))
|
||||||
|
(call-with-input-file file get-string-all)))
|
||||||
|
|
||||||
(test-end "store")
|
(test-end "store")
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user