packages: Change `base32' to allow non-literal strings.

* guix/packages.scm (base32): Allow arguments that are not literal strings.
This commit is contained in:
Ludovic Courtès 2013-01-17 15:45:05 +01:00
parent 2a6c679561
commit aba326f79c
1 changed files with 5 additions and 2 deletions

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2012, 2013 Ludovic Courtès <ludo@gnu.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -93,9 +93,12 @@ representation."
(syntax-case s () (syntax-case s ()
((_ str) ((_ str)
(string? (syntax->datum #'str)) (string? (syntax->datum #'str))
;; A literal string: do the conversion at expansion time.
(with-syntax ((bv (nix-base32-string->bytevector (with-syntax ((bv (nix-base32-string->bytevector
(syntax->datum #'str)))) (syntax->datum #'str))))
#''bv))))) #''bv))
((_ str)
#'(nix-base32-string->bytevector str)))))
;; A package. ;; A package.