GNU bug report logs - #70494
[PATCH 00/23] Groundwork for the Guile guix-daemon

Previous Next

Package: guix-patches;

Reported by: Christopher Baines <mail <at> cbaines.net>

Date: Sun, 21 Apr 2024 09:37:01 UTC

Severity: normal

Tags: patch

Full log


Message #20 received at 70494 <at> debbugs.gnu.org (full text, mbox):

From: Christopher Baines <mail <at> cbaines.net>
To: 70494 <at> debbugs.gnu.org
Subject: [PATCH 09/23] store: Add validate-store-name.
Date: Sun, 21 Apr 2024 10:42:27 +0100
* guix/store.scm (validate-store-name): New procedure.

Change-Id: I507d070d1cfdbd433d93830ee2937b1a1dee315a
---
 guix/store.scm | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/guix/store.scm b/guix/store.scm
index b83f205096..096efcd128 100644
--- a/guix/store.scm
+++ b/guix/store.scm
@@ -205,6 +205,7 @@ (define-module (guix store)
             store-path-package-name
             store-path-hash-part
             direct-store-path
+            validate-store-name
             derivation-log-file
             log-file))
 
@@ -2303,6 +2304,16 @@ (define (store-path? path)
   ;; `isStorePath' in Nix does something similar.
   (string-prefix? (%store-prefix) path))
 
+(define (validate-store-name name)
+  (string-for-each
+   (lambda (c)
+     (unless (or (char-alphabetic? c)
+                 (char-numeric? c)
+                 (member c '(#\+ #\- #\. #\_ #\? #\=)))
+       (error (simple-format #f "invalid character ~A" c))))
+   name)
+  #t)
+
 (define (direct-store-path? path)
   "Return #t if PATH is a store path, and not a sub-directory of a store path.
 This predicate is sometimes needed because files *under* a store path are not
-- 
2.41.0





This bug report was last modified 1 year and 29 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.