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

From: Leo Prikler <[email-masked]>
Date: Mon, 11 Jan 2021 21:42:58 +0100

Hello,

Am Montag, den 11.01.2021, 21:23 +0300 schrieb aecepoglu:
> ---
>  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"))))
Ehm, we're not really big on the downloading bizarre binaries business.
Perhaps you want to try building it from source [1] instead?
> +   (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)))
Try to shorten the description, especially cutting down on the
marketing lingo.  Also use Texinfo markup where appropriate.

Regards,
Leo

[1] https://github.com/elves/elvish