guix hash, guix download: Support base64 format.
* guix/scripts/download.scm (show-help, %options): Support "base64" format. * guix/scripts/hash.scm (show-help, %options): Likewise. * tests/guix-hash.sh: Test it. * doc/guix.texi (Invoking guix hash): Document it.
This commit is contained in:
parent
18ae1ec3ec
commit
0e4e9c8e76
@ -9076,7 +9076,7 @@ Reference Manual}).
|
|||||||
@itemx -f @var{fmt}
|
@itemx -f @var{fmt}
|
||||||
Write the hash in the format specified by @var{fmt}.
|
Write the hash in the format specified by @var{fmt}.
|
||||||
|
|
||||||
Supported formats: @code{nix-base32}, @code{base32}, @code{base16}
|
Supported formats: @code{base64}, @code{nix-base32}, @code{base32}, @code{base16}
|
||||||
(@code{hex} and @code{hexadecimal} can be used as well).
|
(@code{hex} and @code{hexadecimal} can be used as well).
|
||||||
|
|
||||||
If the @option{--format} option is not specified, @command{guix hash}
|
If the @option{--format} option is not specified, @command{guix hash}
|
||||||
|
@ -23,6 +23,7 @@
|
|||||||
#:use-module (gcrypt hash)
|
#:use-module (gcrypt hash)
|
||||||
#:use-module (guix base16)
|
#:use-module (guix base16)
|
||||||
#:use-module (guix base32)
|
#:use-module (guix base32)
|
||||||
|
#:autoload (guix base64) (base64-encode)
|
||||||
#:use-module ((guix download) #:hide (url-fetch))
|
#:use-module ((guix download) #:hide (url-fetch))
|
||||||
#:use-module ((guix build download)
|
#:use-module ((guix build download)
|
||||||
#:select (url-fetch))
|
#:select (url-fetch))
|
||||||
@ -84,10 +85,11 @@
|
|||||||
(define (show-help)
|
(define (show-help)
|
||||||
(display (G_ "Usage: guix download [OPTION] URL
|
(display (G_ "Usage: guix download [OPTION] URL
|
||||||
Download the file at URL to the store or to the given file, and print its
|
Download the file at URL to the store or to the given file, and print its
|
||||||
file name and the hash of its contents.
|
file name and the hash of its contents.\n"))
|
||||||
|
(newline)
|
||||||
Supported formats: 'nix-base32' (default), 'base32', and 'base16'
|
(display (G_ "\
|
||||||
('hex' and 'hexadecimal' can be used as well).\n"))
|
Supported formats: 'base64', 'nix-base32' (default), 'base32',
|
||||||
|
and 'base16' ('hex' and 'hexadecimal' can be used as well).\n"))
|
||||||
(format #t (G_ "
|
(format #t (G_ "
|
||||||
-f, --format=FMT write the hash in the given format"))
|
-f, --format=FMT write the hash in the given format"))
|
||||||
(format #t (G_ "
|
(format #t (G_ "
|
||||||
@ -111,6 +113,8 @@ Supported formats: 'nix-base32' (default), 'base32', and 'base16'
|
|||||||
(lambda (opt name arg result)
|
(lambda (opt name arg result)
|
||||||
(define fmt-proc
|
(define fmt-proc
|
||||||
(match arg
|
(match arg
|
||||||
|
("base64"
|
||||||
|
base64-encode)
|
||||||
("nix-base32"
|
("nix-base32"
|
||||||
bytevector->nix-base32-string)
|
bytevector->nix-base32-string)
|
||||||
("base32"
|
("base32"
|
||||||
|
@ -20,12 +20,13 @@
|
|||||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
(define-module (guix scripts hash)
|
(define-module (guix scripts hash)
|
||||||
#:use-module (guix base32)
|
|
||||||
#:use-module (gcrypt hash)
|
#:use-module (gcrypt hash)
|
||||||
#:use-module (guix serialization)
|
#:use-module (guix serialization)
|
||||||
#:use-module (guix ui)
|
#:use-module (guix ui)
|
||||||
#:use-module (guix scripts)
|
#:use-module (guix scripts)
|
||||||
#:use-module (guix base16)
|
#:use-module (guix base16)
|
||||||
|
#:use-module (guix base32)
|
||||||
|
#:autoload (guix base64) (base64-encode)
|
||||||
#:use-module (ice-9 binary-ports)
|
#:use-module (ice-9 binary-ports)
|
||||||
#:use-module (rnrs files)
|
#:use-module (rnrs files)
|
||||||
#:use-module (ice-9 match)
|
#:use-module (ice-9 match)
|
||||||
@ -47,10 +48,11 @@
|
|||||||
|
|
||||||
(define (show-help)
|
(define (show-help)
|
||||||
(display (G_ "Usage: guix hash [OPTION] FILE
|
(display (G_ "Usage: guix hash [OPTION] FILE
|
||||||
Return the cryptographic hash of FILE.
|
Return the cryptographic hash of FILE.\n"))
|
||||||
|
(newline)
|
||||||
Supported formats: 'nix-base32' (default), 'base32', and 'base16' ('hex'
|
(display (G_ "\
|
||||||
and 'hexadecimal' can be used as well).\n"))
|
Supported formats: 'base64', 'nix-base32' (default), 'base32',
|
||||||
|
and 'base16' ('hex' and 'hexadecimal' can be used as well).\n"))
|
||||||
(format #t (G_ "
|
(format #t (G_ "
|
||||||
-x, --exclude-vcs exclude version control directories"))
|
-x, --exclude-vcs exclude version control directories"))
|
||||||
(format #t (G_ "
|
(format #t (G_ "
|
||||||
@ -83,6 +85,8 @@ and 'hexadecimal' can be used as well).\n"))
|
|||||||
(lambda (opt name arg result)
|
(lambda (opt name arg result)
|
||||||
(define fmt-proc
|
(define fmt-proc
|
||||||
(match arg
|
(match arg
|
||||||
|
("base64"
|
||||||
|
base64-encode)
|
||||||
("nix-base32"
|
("nix-base32"
|
||||||
bytevector->nix-base32-string)
|
bytevector->nix-base32-string)
|
||||||
("base32"
|
("base32"
|
||||||
|
@ -32,6 +32,7 @@ test `guix hash -f nix-base32 /dev/null` = 0mdqa9w1p6cmli6976v4wi0sw9r4p5prkj7lz
|
|||||||
test `guix hash -f hex /dev/null` = e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
|
test `guix hash -f hex /dev/null` = e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
|
||||||
test `guix hash -f base32 /dev/null` = 4oymiquy7qobjgx36tejs35zeqt24qpemsnzgtfeswmrw6csxbkq
|
test `guix hash -f base32 /dev/null` = 4oymiquy7qobjgx36tejs35zeqt24qpemsnzgtfeswmrw6csxbkq
|
||||||
test `guix hash -H sha512 -f hex /dev/null` = cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e
|
test `guix hash -H sha512 -f hex /dev/null` = cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e
|
||||||
|
test `guix hash -H sha1 -f base64 /dev/null` = "2jmj7l5rSw0yVb/vlWAYkK/YBwk="
|
||||||
|
|
||||||
if guix hash -H abcd1234 /dev/null;
|
if guix hash -H abcd1234 /dev/null;
|
||||||
then false; else true; fi
|
then false; else true; fi
|
||||||
|
Loading…
Reference in New Issue
Block a user