projects/guix·blob kernel-updates · refs

139 lines · 5.1 KiB

1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2021, 2022 Nicolas Goaziou <[email protected]>
3;;; Copyright © 2024 Efraim Flashner <[email protected]>
4;;;
5;;; This file is part of GNU Guix.
6;;;
7;;; GNU Guix is free software; you can redistribute it and/or modify it
8;;; under the terms of the GNU General Public License as published by
9;;; the Free Software Foundation; either version 3 of the License, or (at
10;;; your option) any later version.
11;;;
12;;; GNU Guix is distributed in the hope that it will be useful, but
13;;; WITHOUT ANY WARRANTY; without even the implied warranty of
14;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15;;; GNU General Public License for more details.
16;;;
17;;; You should have received a copy of the GNU General Public License
18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
19
20(define-module (gnu packages nushell)
21 #:use-module (gnu packages c)
22 #:use-module (gnu packages compression)
23 #:use-module (gnu packages pkg-config)
24 #:use-module (gnu packages sqlite)
25 #:use-module (gnu packages ssh)
26 #:use-module (gnu packages tls)
27 #:use-module (gnu packages version-control)
28 #:use-module (guix build-system cargo)
29 #:use-module (guix download)
30 #:use-module (guix gexp)
31 #:use-module ((guix licenses) #:prefix license:)
32 #:use-module (guix packages))
33
34
35(define-public nushell
36 (package
37 (name "nushell")
38 (version "0.103.0")
39 (source
40 (origin
41 (method url-fetch)
42 (uri (crate-uri "nu" version))
43 (file-name (string-append name "-" version ".tar.gz"))
44 (sha256
45 (base32 "1hpriinxjpwy4v99dd52gayhc2h3kmzkryzm5arm081kwaw33ay8"))))
46 (build-system cargo-build-system)
47 (arguments
48 `(#:cargo-test-flags
49 '("--"
50 "--skip=path::canonicalize::canonicalize_tilde"
51 "--skip=path::canonicalize::canonicalize_tilde_relative_to"
52 "--skip=plugin_persistence"
53 "--skip=plugins"
54 "--skip=repl")
55 ;#:features '("system-clipboard")
56 #:install-source? #f))
57 (native-inputs (list pkg-config))
58 (inputs (cons* mimalloc openssl sqlite (cargo-inputs 'nushell)))
59 (home-page "https://www.nushell.sh")
60 (synopsis "Shell with a structured approach to the command line")
61 (description
62 "Nu draws inspiration from projects like PowerShell, functional
63programming languages, and modern CLI tools. Rather than thinking of files
64and services as raw streams of text, Nu looks at each input as something with
65structure. For example, when you list the contents of a directory, what you
66get back is a table of rows, where each row represents an item in that
67directory. These values can be piped through a series of steps, in a series
68of commands called a ``pipeline''.")
69 (license license:expat)))
70
71;; Nushell plugins need to be built against the same nu-plugin protocol
72;; version as nushell itself.
73
74(define-public nu-plugin-formats
75 (package
76 (name "nu-plugin-formats")
77 (version "0.103.0")
78 (source
79 (origin
80 (method url-fetch)
81 (uri (crate-uri "nu_plugin_formats" version))
82 (file-name (string-append name "-" version ".tar.gz"))
83 (sha256
84 (base32 "1v05w0kc77q431lbr2vnm8za4p3psj9zykkz2r5bydkzbk8frvkz"))))
85 (build-system cargo-build-system)
86 (arguments
87 `(#:install-source? #f))
88 (inputs (cargo-inputs 'nu-plugin-formats))
89 (home-page
90 "https://github.com/nushell/nushell/tree/main/crates/nu_plugin_formats")
91 (synopsis "An I/O plugin for a set of file formats for Nushell")
92 (description
93 "This package provides An I/O plugin for a set of file formats for Nushell.")
94 (license license:expat)))
95
96(define-public nu-plugin-inc
97 (package
98 (name "nu-plugin-inc")
99 (version "0.103.0")
100 (source
101 (origin
102 (method url-fetch)
103 (uri (crate-uri "nu_plugin_inc" version))
104 (file-name (string-append name "-" version ".tar.gz"))
105 (sha256
106 (base32 "1s7s1h1ffz72mv703a9gsi77hl7rsqkfxq7vhxqrz5p0cwh7fviw"))))
107 (build-system cargo-build-system)
108 (arguments
109 `(#:install-source? #f))
110 (inputs (cargo-inputs 'nu-plugin-inc))
111 (home-page
112 "https://github.com/nushell/nushell/tree/main/crates/nu_plugin_inc")
113 (synopsis "Version incrementer plugin for Nushell")
114 (description
115 "This package provides a version incrementer plugin for Nushell.")
116 (license license:expat)))
117
118(define-public nu-plugin-gstat
119 (package
120 (name "nu-plugin-gstat")
121 (version "0.103.0")
122 (source
123 (origin
124 (method url-fetch)
125 (uri (crate-uri "nu_plugin_gstat" version))
126 (file-name (string-append name "-" version ".tar.gz"))
127 (sha256
128 (base32 "0ys9n9hw1sh3m7j9nd7cr4whr0s3piiz5jpzghcpbi9frslgzbhf"))))
129 (build-system cargo-build-system)
130 (arguments
131 `(#:install-source? #f))
132 (native-inputs (list pkg-config))
133 (inputs
134 (cons* libgit2-1.9 libssh2 openssl zlib (cargo-inputs 'nu-plugin-gstat)))
135 (home-page
136 "https://github.com/nushell/nushell/tree/main/crates/nu_plugin_gstat")
137 (synopsis "Git status plugin for Nushell")
138 (description "This package provides a git status plugin for Nushell.")
139 (license license:expat)))