diff options
-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 |