diff options
author | Attila Lendvai <attila@lendvai.name> | 2021-10-03 14:43:01 +0200 |
---|---|---|
committer | Liliana Marie Prikler <liliana.prikler@gmail.com> | 2022-09-02 17:04:46 +0200 |
commit | e4adc665e1ce4fe5341eda12157460ac3bd87aec (patch) | |
tree | d49a6d46ba0e957515bb25e4e83241d82dc1e228 /guix | |
parent | 54c365d6457fd19479f3cea797196240a73299bf (diff) |
guix: build: Avoid using magic literals in the code for hash length.
* guix/build/utils.scm (%store-hash-string-length): New constant.
(store-path-prefix-length): Factor out the calculation of the total store
prefix length.
* guix/build/graft.scm (hash-length): Use it.
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
Diffstat (limited to 'guix')
-rw-r--r-- | guix/build/graft.scm | 2 | ||||
-rw-r--r-- | guix/build/utils.scm | 11 |
2 files changed, 10 insertions, 3 deletions
diff --git a/guix/build/graft.scm b/guix/build/graft.scm index daac958d4f..281dbaba6f 100644 --- a/guix/build/graft.scm +++ b/guix/build/graft.scm @@ -44,7 +44,7 @@ ;;; ;;; Code: -(define-constant hash-length 32) +(define-constant hash-length %store-hash-string-length) (define nix-base32-char? (cute char-set-contains? diff --git a/guix/build/utils.scm b/guix/build/utils.scm index 3570de81e9..2352a627e9 100644 --- a/guix/build/utils.scm +++ b/guix/build/utils.scm @@ -48,6 +48,7 @@ ;; <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=26805#16>. delete) #:export (%store-directory + %store-hash-string-length store-file-name? strip-store-file-name package-name->name+version @@ -198,15 +199,21 @@ compression." (getenv "NIX_STORE") ;inside builder, set by the daemon "/gnu/store")) +(define-constant %store-hash-string-length 32) + (define (store-file-name? file) "Return true if FILE is in the store." (string-prefix? (%store-directory) file)) +(define (store-path-prefix-length) + (+ 2 ; the slash after %store-directory, and the dash after the hash + (string-length (%store-directory)) + %store-hash-string-length)) + (define (strip-store-file-name file) "Strip the '/gnu/store' and hash from FILE, a store file name. The result is typically a \"PACKAGE-VERSION\" string." - (string-drop file - (+ 34 (string-length (%store-directory))))) + (string-drop file (store-path-prefix-length))) (define (package-name->name+version name) "Given NAME, a package name like \"foo-0.9.1b\", return two values: |