;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2022 pukkamustard ;;; ;;; This file is part of GNU Guix. ;;; ;;; GNU Guix is free software; you can redistribute it and/or modify it ;;; under the terms of the GNU General Public License as published by ;;; the Free Software Foundation; either version 3 of the License, or (at ;;; your option) any later version. ;;; ;;; GNU Guix is distributed in the hope that it will be useful, but ;;; WITHOUT ANY WARRANTY; without even the implied warranty of ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;;; GNU General Public License for more details. ;;; ;;; You should have received a copy of the GNU General Public License ;;; along with GNU Guix. If not, see . (define-module (guix eris) #:use-module (eris) #:use-module (guix config) #:use-module (guix eris fs-store) #:export (guix-eris-block-reducer call-with-eris-block-ref %eris-block-store-directory)) (define %eris-block-store-directory (make-parameter (or (getenv "GUIX_ERIS_BLOCK_STORE_DIRECTORY") (string-append %state-directory "/eris")))) (define (guix-eris-block-reducer) "Returns a block reducer that stores blocks of ERIS encoded content." (eris-fs-store-reducer (%eris-block-store-directory))) (define (call-with-eris-block-ref f) (let ((fs-store-block-ref (eris-fs-store-ref (%eris-block-store-directory)))) (f fs-store-block-ref)))