diff mbox series

[bug#70494,08/23] store: Add text-output-path and text-output-path-from-hash.

Message ID 07a1cd0965422c6bdbcdf52834cd33cee7951114.1713692561.git.mail@cbaines.net
State New
Headers show
Series Groundwork for the Guile guix-daemon | expand

Commit Message

Christopher Baines April 21, 2024, 9:42 a.m. UTC
* guix/store.scm (text-output-path, text-output-path-from-hash): New
procedures.

Change-Id: I38c3aaa0b304dd4f97a222a1065eb1b7f55bbfad
---
 guix/store.scm | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)
diff mbox series

Patch

diff --git a/guix/store.scm b/guix/store.scm
index 578e46507e..b83f205096 100644
--- a/guix/store.scm
+++ b/guix/store.scm
@@ -196,6 +196,8 @@  (define-module (guix store)
             store-path
             output-path
             fixed-output-path
+            text-output-path
+            text-output-path-from-hash
             store-path?
             direct-store-path?
             derivation-path?
@@ -2280,6 +2282,20 @@  (define* (fixed-output-path name hash
                     (sha256 (string->utf8 tag))
                     name))))
 
+(define (text-output-path name text references)
+  (text-output-path-from-hash
+   name
+   (sha256 (string->utf8 text))
+   references))
+
+(define* (text-output-path-from-hash name text-hash references)
+  (store-path
+   (string-append "text" (string-join (sort references string<?)
+                                      ":"
+                                      'prefix))
+   text-hash
+   name))
+
 (define (store-path? path)
   "Return #t if PATH is a store path."
   ;; This is a lightweight check, compared to using a regexp, but this has to