Subject: [bug#45796] [PATCH] shells: Add elvish

From: aecepoglu <[email-masked]>
Date: Mon, 11 Jan 2021 21:23:43 +0300

---
 gnu/packages/shells.scm | 38 +++++++++++++++++++++++++++++++++++++-
 1 file changed, 37 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/shells.scm b/gnu/packages/shells.scm
index 0b4edbe452..2866567f10 100644
--- a/gnu/packages/shells.scm
+++ b/gnu/packages/shells.scm
@@ -52,8 +52,9 @@
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages readline)
   #:use-module (gnu packages scheme)
-  #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
+  #:use-module (guix build-system cmake)
+  #:use-module (guix build-system copy)
   #:use-module (guix build-system python)
   #:use-module (guix build-system trivial)
   #:use-module (guix download)
@@ -97,6 +98,41 @@ direct descendant of NetBSD's Almquist Shell (@command{ash}).")
     (license (list bsd-3
                    gpl2+))))    ; mksignames.c
 
+(define-public elvish
+ (package
+   (name "elvish")
+   (version "0.14.1")
+   (source (origin
+             (method url-fetch/tarbomb)
+             (uri (string-append "https://dl.elv.sh/linux-amd64/elvish-v"
+                                 version
+                                 ".tar.gz"))
+             (sha256
+              (base32
+               "14ga1i32mr90lh4sn8n473bwc4kg5whhg9iqlqag5yj5agp1dx51"))))
+   (build-system copy-build-system)
+   (arguments
+    `(#:install-plan
+      `((,(string-append "elvish-v" ,version) "bin/elvish"))))
+   (home-page "https://elv.sh")
+   (synopsis "Interactive shell and an expressive programming language")
+   (description "
+It has support for:
+
+* Pipelines: Pipelines in Elvish can carry structured data,
+  not just text. You can stream lists, maps and even functions through the pipeline.
+
+* Intuitive Control Structures: Comes with a standard set of control structures:
+  conditional control with `if`, loops with `for` and `while`,
+  and exception handling with `try`. All of them have a familiar C-like syntax.
+* Directory History: Backed by a real database, it remembers all the directories
+  you have been to, all the time. Just press `Ctrl-L` and search,
+  as you do in a browser.
+* Command History: Press `Ctrl-R` and start searching your entire command history.
+* Build-in File Manager: Press `Ctrl-N` to start exploring directories
+  and preview files, with the full power of a shell still under your fingertip.")
+   (license license:bsd-2)))
+
 (define-public fish
   (package
     (name "fish")
-- 
2.29.2