diff options
author | Ludovic Courtès <ludo@gnu.org> | 2016-10-28 21:28:18 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2016-10-28 22:30:17 +0200 |
commit | 343dc11702bf71876795b5d158cad860deca53a1 (patch) | |
tree | f76669e9a32c799380fb7246adddd3521f55a733 | |
parent | 12b6c951cf5ca6055a22a2eec85665353f5510e5 (diff) | |
download | guix-343dc11702bf71876795b5d158cad860deca53a1.tar.gz |
guix hash: Interpret '-' as standard input.
* guix/scripts/hash.scm (guix-hash)[file-hash]: Special-case "-". * tests/guix-hash.sh: Add test. * doc/guix.texi (Invoking guix hash): Document it.
-rw-r--r-- | doc/guix.texi | 4 | ||||
-rw-r--r-- | guix/scripts/hash.scm | 4 | ||||
-rw-r--r-- | tests/guix-hash.sh | 3 |
3 files changed, 8 insertions, 3 deletions
diff --git a/doc/guix.texi b/doc/guix.texi index 1293b8bc1e..22d353c3b9 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -4791,7 +4791,9 @@ The general syntax is: guix hash @var{option} @var{file} @end example -@command{guix hash} has the following options: +When @var{file} is @code{-} (a hyphen), @command{guix hash} computes the +hash of data read from standard input. @command{guix hash} has the +following options: @table @code diff --git a/guix/scripts/hash.scm b/guix/scripts/hash.scm index b269ead50f..a339a8556b 100644 --- a/guix/scripts/hash.scm +++ b/guix/scripts/hash.scm @@ -139,7 +139,9 @@ and 'hexadecimal' can be used as well).\n")) (write-file file port #:select? select?) (force-output port) (get-hash)) - (call-with-input-file file port-sha256)))) + (match file + ("-" (port-sha256 (current-input-port))) + (_ (call-with-input-file file port-sha256)))))) (match args ((file) diff --git a/tests/guix-hash.sh b/tests/guix-hash.sh index 44213d51af..190c9e7f8a 100644 --- a/tests/guix-hash.sh +++ b/tests/guix-hash.sh @@ -1,5 +1,5 @@ # GNU Guix --- Functional package management for GNU -# Copyright © 2013, 2014 Ludovic Courtès <ludo@gnu.org> +# Copyright © 2013, 2014, 2016 Ludovic Courtès <ludo@gnu.org> # Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org> # # This file is part of GNU Guix. @@ -27,6 +27,7 @@ tmpdir="guix-hash-$$" trap 'rm -rf "$tmpdir"' EXIT test `guix hash /dev/null` = 0mdqa9w1p6cmli6976v4wi0sw9r4p5prkj7lzfd1877wk11c9c73 +test `echo -n | guix hash -` = 0mdqa9w1p6cmli6976v4wi0sw9r4p5prkj7lzfd1877wk11c9c73 test `guix hash -f nix-base32 /dev/null` = 0mdqa9w1p6cmli6976v4wi0sw9r4p5prkj7lzfd1877wk11c9c73 test `guix hash -f hex /dev/null` = e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 test `guix hash -f base32 /dev/null` = 4oymiquy7qobjgx36tejs35zeqt24qpemsnzgtfeswmrw6csxbkq |