summary refs log tree commit diff
diff options
context:
space:
mode:
authorOleg Pykhalov <go.wigust@gmail.com>2020-07-09 01:12:07 +0300
committerOleg Pykhalov <go.wigust@gmail.com>2020-07-11 19:19:36 +0300
commitee56de8b5b18d9f5d0e583704bc935fd6443dcac (patch)
treee5c1b6c86a1a5800364b967bbdd1965c2450de16
parentcc0aaf2052111e7ab5442ffe6c53a5fe6d1d51db (diff)
downloadguix-ee56de8b5b18d9f5d0e583704bc935fd6443dcac.tar.gz
gnu: Add hss.
* gnu/packages/admin.scm (hss): New variable.
-rw-r--r--gnu/packages/admin.scm47
1 files changed, 47 insertions, 0 deletions
diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index 6d8d6650ee..3646aa1e46 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -1238,6 +1238,53 @@ console window to allow commands to be interactively run on multiple servers
 over ssh connections.")
     (license license:gpl2+)))
 
+(define-public hss
+  (package
+    (name "hss")
+    (version "1.8")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/six-ddc/hss.git")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1rpysj65j9ls30bf2c5k5hykzzjfknrihs58imp178bx1wqzw4jl"))))
+    (inputs
+     `(("readline" ,readline)))
+    (arguments
+     `(#:tests? #f ;no tests
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'set-env
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (substitute* "Makefile"
+               (("/usr/local/bin")
+                (string-append (assoc-ref outputs "out") "/bin"))
+               (("/usr/local/opt/readline")
+                (assoc-ref inputs "readline")))
+             (setenv "CC" "gcc")))
+         (delete 'configure))))
+    (build-system gnu-build-system)
+    (home-page "https://github.com/six-ddc/hss/")
+    (synopsis "Interactive SSH client for multiple servers")
+    (description "@command{hss} is an interactive SSH client for multiple
+servers.  It will provide almost the same experience as in the Bash
+environment.  It supports:
+
+@itemize @bullet
+@item interactive input: based on @code{libreadline}.
+@item history: responding to the @key{C-r} key.
+@item auto-completion: completion from remote server on the @key{TAB} key, for
+commands and paths.
+@end itemize
+
+Command is executed on all servers in parallel.  Execution on one server does
+not need to wait for that on another server to finish before starting.  So we
+can run a command on hundreds of servers at the same time.")
+    (license license:expat)))
+
 (define-public rename
   (package
     (name "rename")