Subject: shellutils.scm - add hstr
From: Benjamin Slade <[email-masked]>
To: [email-masked]
Date: Fri, 07 Sep 2018 21:17:59 -0600
List-Id: <debbugs-submit.debbugs.gnu.org>

gnu: Add hstr

* gnu/packages/shellutils.scm (hstr): New variable.

diff --git a/gnu/packages/shellutils.scm b/gnu/packages/shellutils.scm
index 650fe98ef..b4572f074 100644
--- a/gnu/packages/shellutils.scm
+++ b/gnu/packages/shellutils.scm
@@ -4,6 +4,7 @@
 ;;; Copyright © 2016 Christopher Baines <[email-masked]>
 ;;; Copyright © 2017 Stefan Reichör <[email-masked]>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <[email-masked]>
+;;; Copyright © 2018 Benjamin Slade <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -27,6 +28,10 @@
   #:use-module (guix licenses)
   #:use-module (guix packages)
   #:use-module (guix download)
+  #:use-module (gnu packages autotools)
+  #:use-module (gnu packages ncurses)
+  #:use-module (gnu packages readline)
+  #:use-module (gnu packages pkg-config)
   #:use-module (guix utils)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system python))
@@ -158,3 +163,44 @@ fzy is designed to be used both as an editor plugin and on the command
 line.  Rather than clearing the screen, fzy displays its interface directly
 below the current cursor position, scrolling the screen if necessary.")
     (license expat)))
+
+(define-public hstr
+  (package
+    (name "hstr")
+    (version "2.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://github.com/dvorka/" name "/archive/"
+                                  version ".tar.gz"))
+              (sha256
+               (base32
+                "0yk2008bl48hv0v3c90ngq4y45h3nxif2ik6s3l7kag1zs5yv4wd"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'build
+           (lambda* (#:key make-flags outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (substitute* "src/include/hstr_curses.h"
+                 (("ncursesw\\/curses.h") "ncurses.h"))
+               (substitute* "src/include/hstr.h"
+                 (("ncursesw\\/curses.h") "ncurses.h")))
+             (invoke "make")
+             #t)))))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("pkg-config" ,pkg-config)
+       ("ncurses" ,ncurses)
+       ("readline" ,readline)))
+    (synopsis "Navigate and search command history with shell history suggest box")
+    (description "HSTR (HiSToRy) is a command line utility that brings improved
+Bash/zsh command completion from the history.  It aims to make completion easier
+and more efficient than Ctrl-R.  Easily view, navigate and search your command
+history with shell history suggest box for Bash and zsh.  HSTR can also manage
+your command history (for instance you can remove commands that are obsolete
+or contain a piece of sensitive information) or bookmark your favourite
+commands.")
+    (home-page "http://me.mindforger.com/projects/hh.html")
+    (license asl2.0)))

-- 
Benjamin Slade - https://babbagefiles.xyz
  `(pgp_fp: ,(21BA 2AE1 28F6 DF36 110A 0E9C A320 BBE8 2B52 EE19))
    '(sent by mu4e on Emacs running under GNU/Linux . https://gnu.org )
       `(Choose Linux ,(Choose Freedom) . https://linux.com )