summary refs log tree commit diff
path: root/gnu
diff options
context:
space:
mode:
authorNicolas Goaziou <mail@nicolasgoaziou.fr>2021-02-13 11:13:17 +0100
committerNicolas Goaziou <mail@nicolasgoaziou.fr>2021-02-13 11:51:07 +0100
commitc63db588272eb03657486d37942d8362ac491f4d (patch)
tree00f591a969e40f69c16ea1c36a1c49145e2ce7c2 /gnu
parent0f2e8e94f16c6f71f4b27bf20bf3c9c4acea6d0a (diff)
downloadguix-c63db588272eb03657486d37942d8362ac491f4d.tar.gz
gnu: Add nushell.
* gnu/packages/shells.scm (nushell): New variable.
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/shells.scm88
1 files changed, 88 insertions, 0 deletions
diff --git a/gnu/packages/shells.scm b/gnu/packages/shells.scm
index 6bd77d29dc..03a094945c 100644
--- a/gnu/packages/shells.scm
+++ b/gnu/packages/shells.scm
@@ -39,8 +39,10 @@
   #:use-module (gnu packages base)
   #:use-module (gnu packages bash)
   #:use-module (gnu packages bison)
+  #:use-module (gnu packages compression)
   #:use-module (gnu packages crates-graphics)
   #:use-module (gnu packages crates-io)
+  #:use-module (gnu packages curl)
   #:use-module (gnu packages documentation)
   #:use-module (gnu packages groff)
   #:use-module (gnu packages guile)
@@ -54,8 +56,12 @@
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages readline)
+  #:use-module (gnu packages rust)
   #:use-module (gnu packages rust-apps)
   #:use-module (gnu packages scheme)
+  #:use-module (gnu packages tls)
+  #:use-module (gnu packages version-control)
+  #:use-module (gnu packages xorg)
   #:use-module (guix build-system cargo)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
@@ -931,6 +937,88 @@ Underpinning these utilities are many Scheme interfaces for manipulating
 files and text.")
     (license license:gpl3+)))
 
+(define-public nushell
+  ;; Regular 0.26.0 release has an issue with rust-sysinfo.  Use a later
+  ;; commit including the patches fixing it.
+  (let ((commit "30833468844eca336e24e02c3304a0245b5760b5")
+        (revision "0"))
+    (package
+      (name "nushell")
+      (version (git-version "0.26.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/nushell/nushell.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "19miwximiqh9j7cjh2f72c38a06d0zvd9fxa7m8aaz8cbcmnsrjp"))))
+      (build-system cargo-build-system)
+      (arguments
+       `(#:rust ,rust-1.47
+         #:tests? #false                ;missing files
+         #:features '("extra")
+         #:cargo-inputs
+         (("rust-clap" ,rust-clap-2)
+          ("rust-ctrlc" ,rust-ctrlc-3)
+          ("rust-futures" ,rust-futures-0.3)
+          ("rust-itertools" ,rust-itertools-0.10)
+          ("rust-log" ,rust-log-0.4)
+          ("rust-nu-cli" ,rust-nu-cli-0.26)
+          ("rust-nu-command" ,rust-nu-command-0.26)
+          ("rust-nu-data" ,rust-nu-data-0.26)
+          ("rust-nu-engine" ,rust-nu-engine-0.26)
+          ("rust-nu-errors" ,rust-nu-errors-0.26)
+          ("rust-nu-parser" ,rust-nu-parser-0.26)
+          ("rust-nu-plugin" ,rust-nu-plugin-0.26)
+          ("rust-nu-protocol" ,rust-nu-protocol-0.26)
+          ("rust-nu-source" ,rust-nu-source-0.26)
+          ("rust-nu-value-ext" ,rust-nu-value-ext-0.26)
+          ("rust-nu-plugin-binaryview" ,rust-nu-plugin-binaryview-0.26)
+          ("rust-nu-plugin-chart" ,rust-nu-plugin-chart-0.26)
+          ("rust-nu-plugin-fetch" ,rust-nu-plugin-fetch-0.26)
+          ("rust-nu-plugin-from-bson" ,rust-nu-plugin-from-bson-0.26)
+          ("rust-nu-plugin-from-sqlite" ,rust-nu-plugin-from-sqlite-0.26)
+          ("rust-nu-plugin-inc" ,rust-nu-plugin-inc-0.26)
+          ("rust-nu-plugin-match" ,rust-nu-plugin-match-0.26)
+          ("rust-nu-plugin-post" ,rust-nu-plugin-post-0.26)
+          ("rust-nu-plugin-ps" ,rust-nu-plugin-ps-0.26)
+          ("rust-nu-plugin-s3" ,rust-nu-plugin-s3-0.26)
+          ("rust-nu-plugin-selector" ,rust-nu-plugin-selector-0.26)
+          ("rust-nu-plugin-start" ,rust-nu-plugin-start-0.26)
+          ("rust-nu-plugin-sys" ,rust-nu-plugin-sys-0.26)
+          ("rust-nu-plugin-textview" ,rust-nu-plugin-textview-0.26)
+          ("rust-nu-plugin-to-bson" ,rust-nu-plugin-to-bson-0.26)
+          ("rust-nu-plugin-to-sqlite" ,rust-nu-plugin-to-sqlite-0.26)
+          ("rust-nu-plugin-tree" ,rust-nu-plugin-tree-0.26)
+          ("rust-nu-plugin-xpath" ,rust-nu-plugin-xpath-0.26)
+          ("rust-pretty-env-logger" ,rust-pretty-env-logger-0.4))
+         #:cargo-development-inputs
+         (("rust-dunce" ,rust-dunce-1)
+          ("rust-nu-test-support" ,rust-nu-test-support-0.26))))
+      (native-inputs
+       `(("pkg-config" ,pkg-config)
+         ("python" ,python)))
+      (inputs
+       `(("curl" ,curl)
+         ("libgit2" ,libgit2)
+         ("libx11" ,libx11)
+         ("libxcb" ,libxcb)
+         ("openssl" ,openssl)
+         ("zlib" ,zlib)))
+      (home-page "https://www.nushell.sh")
+      (synopsis "Shell that understands the structure of the data")
+      (description
+       "Nu draws inspiration from projects like PowerShell, functional
+programming languages, and modern CLI tools.  Rather than thinking of files
+and services as raw streams of text, Nu looks at each input as something with
+structure.  For example, when you list the contents of a directory, what you
+get back is a table of rows, where each row represents an item in that
+directory.  These values can be piped through a series of steps, in a series
+of commands called a ``pipeline''.")
+      (license license:expat))))
+
 (define-public rust-nu-cli-0.26
   (package
     (name "rust-nu-cli")