Subject: [PATCH] gnu: Add hungrycat.
From: Tobias Geerinckx-Rice <[email-masked]>
To: [email-masked]
Date: Fri, 15 Dec 2017 08:29:01 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

* gnu/packages/admin.scm (hungrycat): New public variable.
---

Good morning Guix!

‘Patch’ submitted upstream, hopefully making the snippet unnecessary by
the time this is merged.

Kind regards,

T G-R

 gnu/packages/admin.scm | 41 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 41 insertions(+)

diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index e97fa79ac..ee95743dc 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -2333,3 +2333,44 @@ application, collecting the information received.")
         ;; 'src/siphash24.c' is the SipHash reference implementation, which
         ;; bears a CC0 Public Domain Dedication.
     (license license:agpl3+)))
+
+(define-public hungrycat
+  (package
+    (name "hungrycat")
+    (version "0.4")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://github.com/jwilk/hungrycat/"
+                                  "releases/download/" version "/"
+                                  name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0yvmz5apfkw0kwx6bzj8svfln7wic1ivv4brifgg95r8m9aglq5r"))
+              (modules '((guix build utils)))
+              (snippet
+               ;; Makefile.in installs a copy of the hungrycat binary as man
+               ;; page.  Assume this isn't some kind of statement and fix it.
+               ;; Reported as <https://github.com/jwilk/hungrycat/pull/1>
+               '(begin
+                  (substitute* "Makefile.in"
+                    (("install -m644 \\$\\(<\\)")
+                     "install -m644 doc/$(<).1"))
+                  #t))))
+    (build-system gnu-build-system)
+    (native-inputs
+     ;; For tests.
+     `(("python" ,python-wrapper)
+       ("python-nose" ,python-nose)))
+    (arguments
+     `(#:test-target "test"))
+    (synopsis "A single tool that combines @command{cat} & @command{rm}")
+    (description
+     "hungrycat prints the contents of a file to standard output, while
+simultaneously freeing the disk space it occupied.  It is useful if you need
+to process a large file, don't have enough space to store both the input and
+output files, and don't need the input file afterwards.
+While similar in principle to running @command{cat} immediately followed by
+@command{rm}, @command{hungrycat} actually frees blocks as soon as they are
+printed and before the entire file has even been read.")
+    (home-page "https://jwilk.net/software/hungrycat")
+    (license license:expat)))
-- 
2.15.0