guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

05/05: guix hash: Interpret '-' as standard input.


From: Ludovic Courtès
Subject: 05/05: guix hash: Interpret '-' as standard input.
Date: Fri, 28 Oct 2016 20:32:51 +0000 (UTC)

civodul pushed a commit to branch master
in repository guix.

commit 343dc11702bf71876795b5d158cad860deca53a1
Author: Ludovic Courtès <address@hidden>
Date:   Fri Oct 28 21:28:18 2016 +0200

    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.
---
 doc/guix.texi         |    4 +++-
 guix/scripts/hash.scm |    4 +++-
 tests/guix-hash.sh    |    3 ++-
 3 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/doc/guix.texi b/doc/guix.texi
index 1293b8b..22d353c 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
 
address@hidden 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 b269ead..a339a85 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 44213d5..190c9e7 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 <address@hidden>
+# Copyright © 2013, 2014, 2016 Ludovic Courtès <address@hidden>
 # Copyright © 2016 Jan Nieuwenhuizen <address@hidden>
 #
 # 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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]