Commit | Line | Data |
---|---|---|
9e225670 | 1 | ;;; GNU Guix --- Functional package management for GNU |
e29315b2 | 2 | ;;; Copyright © 2019, 2020 John Soo <jsoo1@asu.edu> |
d76f073a | 3 | ;;; Copyright © 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il> |
16ffc3b6 | 4 | ;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net> |
9eed0a74 | 5 | ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de> |
ca4b5588 | 6 | ;;; Copyright © 2020 Leo Famulari <leo@famulari.name> |
cc2849bc | 7 | ;;; Copyright © 2020 Mark H Weaver <mhw@netris.org> |
0a2e80c3 | 8 | ;;; Copyright © 2020 Gabriel Arazas <foo.dogsquared@gmail.com> |
700ee27f | 9 | ;;; Copyright © 2020, 2021 Nicolas Goaziou <mail@nicolasgoaziou.fr> |
4d047d19 | 10 | ;;; Copyright © 2021 Tobias Geerinckx-Rice <me@tobias.gr> |
fb51912d | 11 | ;;; Copyright © 2021 Sharlatan Hellseher <sharlatanus@gmail.ccom> |
453f18db | 12 | ;;; Copyright © 2021 Zheng Junjie <873216071@qq.com> |
9e225670 JS |
13 | ;;; |
14 | ;;; This file is part of GNU Guix. | |
15 | ;;; | |
16 | ;;; GNU Guix is free software; you can redistribute it and/or modify it | |
17 | ;;; under the terms of the GNU General Public License as published by | |
18 | ;;; the Free Software Foundation; either version 3 of the License, or (at | |
19 | ;;; your option) any later version. | |
20 | ;;; | |
21 | ;;; GNU Guix is distributed in the hope that it will be useful, but | |
22 | ;;; WITHOUT ANY WARRANTY; without even the implied warranty of | |
23 | ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
24 | ;;; GNU General Public License for more details. | |
25 | ;;; | |
26 | ;;; You should have received a copy of the GNU General Public License | |
27 | ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. | |
28 | ||
29 | (define-module (gnu packages rust-apps) | |
30 | #:use-module ((guix licenses) #:prefix license:) | |
31 | #:use-module (guix build-system cargo) | |
32 | #:use-module (guix download) | |
33 | #:use-module (guix packages) | |
c40e3d0b EF |
34 | #:use-module (gnu packages compression) |
35 | #:use-module (gnu packages crates-io) | |
9f86a6da | 36 | #:use-module (gnu packages crates-graphics) |
6e18b41e | 37 | #:use-module (gnu packages documentation) |
baa47f0b NG |
38 | #:use-module (gnu packages fontutils) |
39 | #:use-module (gnu packages gtk) | |
0f7720d1 | 40 | #:use-module (gnu packages jemalloc) |
d883e791 | 41 | #:use-module (gnu packages pcre) |
c40e3d0b EF |
42 | #:use-module (gnu packages pkg-config) |
43 | #:use-module (gnu packages tls) | |
44 | #:use-module (gnu packages version-control)) | |
9e225670 | 45 | |
4e811f56 NG |
46 | (define-public bat |
47 | (package | |
48 | (name "bat") | |
49 | (version "0.17.1") | |
50 | (source | |
51 | (origin | |
52 | (method url-fetch) | |
53 | (uri (crate-uri "bat" version)) | |
54 | (file-name (string-append name "-" version ".tar.gz")) | |
55 | (sha256 | |
56 | (base32 "1ia12774prjnm3msiaja6qdpxkpyknxswqpgkmwzj0wn9nhkc7nz")))) | |
57 | (build-system cargo-build-system) | |
58 | (arguments | |
59 | `(#:cargo-inputs | |
60 | (("rust-ansi-colours" ,rust-ansi-colours-1) | |
61 | ("rust-ansi-term" ,rust-ansi-term-0.12) | |
62 | ("rust-atty" ,rust-atty-0.2) | |
63 | ("rust-clap" ,rust-clap-2) | |
4e811f56 NG |
64 | ("rust-console" ,rust-console-0.13) |
65 | ("rust-content-inspector" ,rust-content-inspector-0.2) | |
66 | ("rust-dirs" ,rust-dirs-3) | |
67 | ("rust-encoding" ,rust-encoding-0.2) | |
68 | ("rust-error-chain" ,rust-error-chain-0.12) | |
69 | ("rust-git2" ,rust-git2-0.13) | |
70 | ("rust-globset" ,rust-globset-0.4) | |
71 | ("rust-lazy-static" ,rust-lazy-static-1) | |
72 | ("rust-path-abs" ,rust-path-abs-0.5) | |
73 | ("rust-semver" ,rust-semver-0.11) | |
74 | ("rust-serde" ,rust-serde-1) | |
75 | ("rust-serde-yaml" ,rust-serde-yaml-0.8) | |
76 | ("rust-shell-words" ,rust-shell-words-1) | |
77 | ("rust-syntect" ,rust-syntect-4) | |
78 | ("rust-unicode-width" ,rust-unicode-width-0.1) | |
79 | ("rust-wild" ,rust-wild-2)) | |
80 | #:cargo-development-inputs | |
81 | (("rust-assert-cmd" ,rust-assert-cmd-1) | |
82 | ("rust-predicates" ,rust-predicates-1) | |
83 | ("rust-tempdir" ,rust-tempdir-0.3)))) | |
ee00b7c3 NG |
84 | (native-inputs |
85 | `(("pkg-config" ,pkg-config))) | |
4e811f56 | 86 | (inputs |
ee00b7c3 NG |
87 | `(("libgit2" ,libgit2) |
88 | ("zlib" ,zlib))) | |
4e811f56 NG |
89 | (home-page "https://github.com/sharkdp/bat") |
90 | (synopsis "@command{cat} clone with syntax highlighting and git integration") | |
91 | (description | |
92 | "@command{bat} is a drop-in @command{cat} replacement featuring syntax | |
93 | highlighting for a large number of languages, git integration, and automatic | |
94 | paging.") | |
95 | (license (list license:expat license:asl2.0)))) | |
96 | ||
fb51912d SH |
97 | (define-public drill |
98 | (package | |
99 | (name "drill") | |
100 | (version "0.7.1") | |
101 | (source | |
102 | (origin | |
103 | (method url-fetch) | |
104 | (uri (crate-uri "drill" version)) | |
105 | (file-name (string-append name "-" version ".tar.gz")) | |
106 | (sha256 | |
107 | (base32 "1m73d7rzi0p5c1hn0081d2235kcyapdza7h0vqf5jhnirpnjn793")))) | |
108 | (build-system cargo-build-system) | |
109 | (arguments | |
110 | `(#:cargo-inputs | |
111 | (("rust-async-trait" ,rust-async-trait-0.1) | |
112 | ("rust-clap" ,rust-clap-2) | |
113 | ("rust-colored" ,rust-colored-1) | |
114 | ("rust-csv" ,rust-csv-1) | |
115 | ("rust-futures" ,rust-futures-0.3) | |
116 | ("rust-lazy-static" ,rust-lazy-static-1) | |
117 | ("rust-linked-hash-map" ,rust-linked-hash-map-0.5) | |
118 | ("rust-num-cpus" ,rust-num-cpus-1) | |
119 | ("rust-rand" ,rust-rand-0.7) | |
120 | ("rust-regex" ,rust-regex-1) | |
121 | ("rust-reqwest" ,rust-reqwest-0.10) | |
122 | ("rust-serde" ,rust-serde-1) | |
123 | ("rust-serde-json" ,rust-serde-json-1) | |
124 | ("rust-tokio" ,rust-tokio-0.2) | |
125 | ("rust-url" ,rust-url-2) | |
126 | ("rust-yaml-rust" ,rust-yaml-rust-0.4)))) | |
127 | (native-inputs | |
128 | `(("pkg-config" ,pkg-config))) | |
129 | (inputs | |
130 | `(("openssl" ,openssl))) | |
131 | (home-page "https://github.com/fcsonline/drill") | |
132 | (synopsis "HTTP load testing application") | |
133 | (description | |
134 | "Drill is a HTTP load testing application written in Rust inspired by | |
135 | Ansible syntax. Benchmark files can be written in YAML.") | |
136 | (license license:gpl3))) | |
137 | ||
d42cbbba JS |
138 | (define-public exa |
139 | (package | |
140 | (name "exa") | |
141 | (version "0.9.0") | |
142 | (source | |
143 | (origin | |
144 | (method url-fetch) | |
145 | (uri (crate-uri "exa" version)) | |
146 | (file-name | |
147 | (string-append name "-" version ".tar.gz")) | |
148 | (sha256 | |
149 | (base32 | |
150 | "1s902xgplz1167k0r7x235p914lprpsqy2if0kpa1mlb0fswqqq4")))) | |
151 | (build-system cargo-build-system) | |
152 | (arguments | |
153 | `(#:cargo-inputs | |
154 | (("rust-ansi-term" ,rust-ansi-term-0.12) | |
155 | ("rust-datetime" ,rust-datetime-0.4) | |
156 | ("rust-env-logger" ,rust-env-logger-0.6) | |
157 | ("rust-git2" ,rust-git2-0.9) | |
158 | ("rust-glob" ,rust-glob-0.3) | |
21c8ec75 | 159 | ("rust-lazy-static" ,rust-lazy-static-1) |
d42cbbba JS |
160 | ("rust-libc" ,rust-libc-0.2) |
161 | ("rust-locale" ,rust-locale-0.2) | |
162 | ("rust-log" ,rust-log-0.4) | |
163 | ("rust-natord" ,rust-natord-1.0) | |
c5e879cd | 164 | ("rust-num-cpus" ,rust-num-cpus-1) |
d42cbbba JS |
165 | ("rust-number-prefix" ,rust-number-prefix-0.3) |
166 | ("rust-scoped-threadpool" ,rust-scoped-threadpool-0.1) | |
167 | ("rust-term-grid" ,rust-term-grid-0.1) | |
168 | ("rust-term-size" ,rust-term-size-0.3) | |
169 | ("rust-unicode-width" ,rust-unicode-width-0.1) | |
170 | ("rust-users" ,rust-users-0.9) | |
171 | ("rust-zoneinfo-compiled" ,rust-zoneinfo-compiled-0.4)) | |
172 | #:cargo-development-inputs | |
173 | (("rust-datetime" ,rust-datetime-0.4)) | |
79caf46a | 174 | #:phases |
d42cbbba | 175 | (modify-phases %standard-phases |
d42cbbba JS |
176 | ;; Ignoring failing tests. |
177 | ;; Reported in https://github.com/ogham/exa/issues/318 | |
178 | (add-before 'check 'disable-failing-tests | |
179 | (lambda _ | |
180 | (substitute* "src/options/mod.rs" | |
181 | (("^.*fn oneline_across.*" oneline-across) | |
182 | (string-append "#[ignore]\n" oneline-across))) | |
183 | ||
184 | (substitute* "src/options/view.rs" | |
185 | (("test!\\(across:.*") "") | |
e827f404 | 186 | (("test!\\(cr:.*") "") |
d42cbbba JS |
187 | (("test!\\(empty:.*") "") |
188 | (("test!\\(gracross:.*") "") | |
189 | (("test!\\(grid:.*") "") | |
190 | (("test!\\(icons:.*") "") | |
191 | (("test!\\(just_binary:.*") "") | |
192 | (("test!\\(just_blocks:.*") "") | |
193 | (("test!\\(just_bytes:.*") "") | |
194 | (("test!\\(just_git:.*") "") | |
195 | (("test!\\(just_group:.*") "") | |
196 | (("test!\\(just_header:.*") "") | |
197 | (("test!\\(just_inode:.*") "") | |
198 | (("test!\\(just_links:.*") "") | |
199 | (("test!\\(leg:.*") "") | |
200 | (("test!\\(lid:.*") "") | |
201 | (("test!\\(original_g:.*") "")) | |
b76473ec EF |
202 | #t)) |
203 | (add-after 'install 'install-extras | |
204 | (lambda* (#:key outputs #:allow-other-keys) | |
205 | (let* ((out (assoc-ref outputs "out")) | |
206 | (share (string-append out "/share")) | |
207 | (man1 (string-append share "/man/man1"))) | |
208 | (install-file "contrib/man/exa.1" man1) | |
209 | (mkdir-p (string-append out "/etc/bash_completion.d")) | |
210 | (mkdir-p (string-append share "/fish/vendor_completions.d")) | |
211 | (mkdir-p (string-append share "/zsh/site-functions")) | |
212 | (copy-file "contrib/completions.bash" | |
213 | (string-append out "/etc/bash_completion.d/exa")) | |
214 | (copy-file "contrib/completions.fish" | |
215 | (string-append share "/fish/vendor_completions.d/exa.fish")) | |
216 | (copy-file "contrib/completions.zsh" | |
217 | (string-append share "/zsh/site-functions/_exa")) | |
218 | #t)))))) | |
d42cbbba JS |
219 | (inputs |
220 | `(("libgit2" ,libgit2) | |
221 | ("zlib" ,zlib))) | |
222 | (native-inputs | |
223 | `(("pkg-config" ,pkg-config))) | |
224 | (home-page "https://the.exa.website/") | |
225 | (synopsis "Modern replacement for ls") | |
226 | (description "@code{exa} is a modern replacement for the command-line | |
227 | program @code{ls}. It uses colours to distinguish file types and metadata. It | |
228 | also knows about symlinks, extended attributes, and Git.") | |
229 | (license license:expat))) | |
230 | ||
0f7720d1 JS |
231 | (define-public fd |
232 | (package | |
233 | (name "fd") | |
bf2ab0a0 | 234 | (version "8.1.1") |
0f7720d1 JS |
235 | (source |
236 | (origin | |
237 | (method url-fetch) | |
238 | (uri (crate-uri "fd-find" version)) | |
239 | (file-name | |
240 | (string-append name "-" version ".tar.gz")) | |
241 | (sha256 | |
242 | (base32 | |
bf2ab0a0 | 243 | "124a5r8hpk2phs1288jybh34d48yxy44wr7gv5ggchs272gs2jam")))) |
0f7720d1 JS |
244 | (build-system cargo-build-system) |
245 | (arguments | |
246 | `(#:cargo-inputs | |
247 | (("rust-ansi-term" ,rust-ansi-term-0.12) | |
d76f073a | 248 | ("rust-anyhow" ,rust-anyhow-1) |
0f7720d1 JS |
249 | ("rust-atty" ,rust-atty-0.2) |
250 | ("rust-clap" ,rust-clap-2) | |
251 | ("rust-ctrlc" ,rust-ctrlc-3.1) | |
880e6334 | 252 | ("rust-dirs" ,rust-dirs-2) |
0f7720d1 | 253 | ("rust-globset" ,rust-globset-0.4) |
bf2ab0a0 | 254 | ("rust-humantime" ,rust-humantime-2) |
0f7720d1 JS |
255 | ("rust-ignore" ,rust-ignore-0.4) |
256 | ("rust-jemallocator" ,rust-jemallocator-0.3) | |
21c8ec75 | 257 | ("rust-lazy-static" ,rust-lazy-static-1) |
0f7720d1 | 258 | ("rust-libc" ,rust-libc-0.2) |
bf2ab0a0 | 259 | ("rust-lscolors" ,rust-lscolors-0.7) |
c5e879cd | 260 | ("rust-num-cpus" ,rust-num-cpus-1) |
6cd7b355 | 261 | ("rust-regex" ,rust-regex-1) |
0f7720d1 | 262 | ("rust-regex-syntax" ,rust-regex-syntax-0.6) |
bf2ab0a0 | 263 | ("rust-users" ,rust-users-0.10) |
0f7720d1 JS |
264 | ("rust-version-check" ,rust-version-check-0.9)) |
265 | #:cargo-development-inputs | |
266 | (("rust-diff" ,rust-diff-0.1) | |
267 | ("rust-filetime" ,rust-filetime-0.2) | |
268 | ("rust-tempdir" ,rust-tempdir-0.3)) | |
269 | #:phases | |
270 | (modify-phases %standard-phases | |
271 | (add-after 'unpack 'override-jemalloc | |
272 | (lambda* (#:key inputs #:allow-other-keys) | |
273 | (let ((jemalloc (assoc-ref inputs "jemalloc"))) | |
274 | (setenv "JEMALLOC_OVERRIDE" | |
275 | (string-append jemalloc "/lib/libjemalloc.so"))) | |
276 | #t)) | |
277 | (add-after 'install 'install-extra | |
278 | (lambda* (#:key outputs #:allow-other-keys) | |
279 | (let* ((out (assoc-ref outputs "out")) | |
280 | (install-completion | |
281 | (lambda (completion out-dir) | |
282 | (for-each | |
283 | (lambda (f) | |
284 | (install-file f (string-append out out-dir))) | |
285 | (find-files "target/release/build/" completion))))) | |
286 | ;; Manpages | |
287 | (install-file "doc/fd.1" (string-append out "/share/man/man1")) | |
288 | ;; Completions | |
9eed0a74 | 289 | (install-completion "^fd.bash$" "/etc/bash_completion.d") |
0f7720d1 JS |
290 | (install-completion "^fd.fish$" "/share/fish/vendor_completions.d") |
291 | (install-completion "^_fd$" "/share/zsh/site-functions") | |
9eed0a74 MR |
292 | (rename-file (string-append out "/etc/bash_completion.d/fd.bash") |
293 | (string-append out "/etc/bash_completion.d/fd")) | |
0f7720d1 JS |
294 | #t)))))) |
295 | (inputs `(("jemalloc" ,jemalloc))) | |
296 | (home-page "https://github.com/sharkdp/fd") | |
297 | (synopsis "Simple, fast and user-friendly alternative to find") | |
298 | (description | |
299 | "@code{fd} is a simple, fast and user-friendly alternative to @code{find}. | |
300 | While it does not seek to mirror all of find's powerful functionality, it | |
301 | provides defaults for 80% of the use cases.") | |
302 | (license (list license:expat license:asl2.0)))) | |
303 | ||
0a2e80c3 GA |
304 | (define-public hexyl |
305 | (package | |
306 | (name "hexyl") | |
307 | (version "0.8.0") | |
308 | (source | |
309 | (origin | |
310 | (method url-fetch) | |
311 | (uri (crate-uri "hexyl" version)) | |
312 | (file-name | |
313 | (string-append name "-" version ".tar.gz")) | |
314 | (sha256 | |
315 | (base32 | |
316 | "0sipag77196467idbznbk5q5lwhqz85zw7y1pwg9b27jxqyk04rp")))) | |
317 | (build-system cargo-build-system) | |
318 | (arguments | |
319 | `(#:cargo-inputs | |
320 | (("rust-ansi-term" ,rust-ansi-term-0.12) | |
321 | ("rust-atty" ,rust-atty-0.2) | |
322 | ("rust-clap" ,rust-clap-2) | |
323 | ("rust-libc" ,rust-libc-0.2)))) | |
324 | (home-page "https://github.com/sharkdp/hexyl") | |
325 | (synopsis "Command-line hex viewer") | |
326 | (description | |
327 | "This package provides a command line hex viewer. It uses a colored output | |
328 | for distinguishing different kinds of bytes such as NULL bytes, printable ASCII | |
329 | characters, ASCII whitespace characters, other ASCII characters and non-ASCII.") | |
330 | (license (list license:expat license:asl2.0)))) | |
331 | ||
9e225670 JS |
332 | (define-public ripgrep |
333 | (package | |
334 | (name "ripgrep") | |
e4a26e32 | 335 | (version "12.1.1") |
9e225670 JS |
336 | (source |
337 | (origin | |
338 | (method url-fetch) | |
339 | (uri (crate-uri "ripgrep" version)) | |
340 | (file-name | |
341 | (string-append name "-" version ".tar.gz")) | |
342 | (sha256 | |
343 | (base32 | |
e4a26e32 | 344 | "1grfi0j9zczzipipc21lkdbqmd2lvy2wlqy65fy4sckqvix5amdr")))) |
9e225670 JS |
345 | (build-system cargo-build-system) |
346 | (arguments | |
347 | `(#:cargo-inputs | |
16ffc3b6 | 348 | (("rust-bstr" ,rust-bstr-0.2) |
9e225670 JS |
349 | ("rust-clap" ,rust-clap-2) |
350 | ("rust-grep" ,rust-grep-0.2) | |
351 | ("rust-ignore" ,rust-ignore-0.4) | |
16ffc3b6 | 352 | ("rust-jemallocator" ,rust-jemallocator-0.3) |
21c8ec75 | 353 | ("rust-lazy-static" ,rust-lazy-static-1) |
9e225670 | 354 | ("rust-log" ,rust-log-0.4) |
c5e879cd | 355 | ("rust-num-cpus" ,rust-num-cpus-1) |
6cd7b355 | 356 | ("rust-regex" ,rust-regex-1) |
40908e02 | 357 | ("rust-serde-json" ,rust-serde-json-1) |
c5e879cd | 358 | ("rust-termcolor" ,rust-termcolor-1)) |
9e225670 | 359 | #:cargo-development-inputs |
271161db | 360 | (("rust-serde" ,rust-serde-1) |
ef1f71e0 | 361 | ("rust-serde-derive" ,rust-serde-derive-1)) |
6e18b41e JK |
362 | #:modules ((ice-9 match) |
363 | (guix build cargo-build-system) | |
364 | (guix build utils)) | |
365 | #:phases | |
366 | (modify-phases %standard-phases | |
367 | (add-after 'build 'install-manpage | |
368 | ;; NOTE: This is done before 'check so that there's only one output | |
369 | ;; directory with the man page. | |
370 | (lambda* (#:key outputs #:allow-other-keys) | |
371 | (match (find-files "target" "^rg\\.1$") | |
372 | ((manpage) | |
373 | (install-file manpage (string-append | |
374 | (assoc-ref outputs "out") | |
375 | "/share/man/man1")))) | |
927c2518 JK |
376 | #t))) |
377 | #:features '("pcre2"))) | |
6e18b41e | 378 | (native-inputs |
d883e791 JK |
379 | `(("asciidoc" ,asciidoc) |
380 | ("pcre2" ,pcre2) | |
381 | ("pkg-config" ,pkg-config))) | |
9e225670 JS |
382 | (home-page "https://github.com/BurntSushi/ripgrep") |
383 | (synopsis "Line-oriented search tool") | |
384 | (description | |
385 | "ripgrep is a line-oriented search tool that recursively searches | |
386 | your current directory for a regex pattern while respecting your | |
387 | gitignore rules.") | |
388 | (license (list license:unlicense license:expat)))) | |
c5c48761 EF |
389 | |
390 | (define-public rust-cbindgen | |
391 | (package | |
392 | (name "rust-cbindgen") | |
3a963cdd | 393 | (version "0.13.2") |
c5c48761 EF |
394 | (source |
395 | (origin | |
396 | (method url-fetch) | |
397 | (uri (crate-uri "cbindgen" version)) | |
398 | (file-name (string-append name "-" version ".crate")) | |
399 | (sha256 | |
400 | (base32 | |
3a963cdd | 401 | "0673pq96hs7waavkv58v2pakpxpsfyjvbraa5kyl2b44phgdzcid")))) |
c5c48761 EF |
402 | (build-system cargo-build-system) |
403 | (arguments | |
404 | `(#:cargo-inputs | |
405 | (("clap" ,rust-clap-2) | |
406 | ("log" ,rust-log-0.4) | |
0a568bbc | 407 | ("proc-macro2" ,rust-proc-macro2-1) |
d0faf9c2 | 408 | ("quote" ,rust-quote-1) |
271161db | 409 | ("serde" ,rust-serde-1) |
40908e02 | 410 | ("serde-json" ,rust-serde-json-1) |
12c6b558 | 411 | ("syn" ,rust-syn-1) |
7c6948c7 | 412 | ("tempfile" ,rust-tempfile-3) |
ef3827da | 413 | ("toml" ,rust-toml-0.5)))) |
c5c48761 EF |
414 | (home-page "https://github.com/eqrion/cbindgen/") |
415 | (synopsis "Tool for generating C bindings to Rust code") | |
416 | (description | |
417 | "This package provides a tool for generating C/C++ bindings to Rust code.") | |
418 | (license license:mpl2.0))) | |
e29315b2 | 419 | |
700ee27f NG |
420 | (define-public rust-cbindgen-0.16 |
421 | (package | |
422 | (inherit rust-cbindgen) | |
423 | (name "rust-cbindgen") | |
424 | (version "0.16.0") | |
425 | (source | |
426 | (origin | |
427 | (method url-fetch) | |
428 | (uri (crate-uri "cbindgen" version)) | |
429 | (file-name (string-append name "-" version ".tar.gz")) | |
430 | (sha256 | |
431 | (base32 "049cai626nzw0km03parx4sxwaxgbr7i5ifjbjwnfxkqkj5k2i4k")))) | |
432 | (arguments | |
433 | `(#:tests? #false ;missing files | |
434 | #:cargo-inputs | |
435 | (("rust-clap" ,rust-clap-2) | |
436 | ("rust-heck" ,rust-heck-0.3) | |
437 | ("rust-indexmap" ,rust-indexmap-1) | |
438 | ("rust-log" ,rust-log-0.4) | |
439 | ("rust-proc-macro2" ,rust-proc-macro2-1) | |
440 | ("rust-quote" ,rust-quote-1) | |
441 | ("rust-serde" ,rust-serde-1) | |
442 | ("rust-serde-json" ,rust-serde-json-1) | |
443 | ("rust-syn" ,rust-syn-1) | |
444 | ("rust-tempfile" ,rust-tempfile-3) | |
445 | ("rust-toml" ,rust-toml-0.5)) | |
446 | #:cargo-development-inputs | |
447 | (("rust-serial-test" ,rust-serial-test-0.5)))))) | |
448 | ||
319e4879 NG |
449 | (define-public rust-cbindgen-0.15 |
450 | (package | |
451 | (inherit rust-cbindgen) | |
452 | (name "rust-cbindgen") | |
453 | (version "0.15.0") | |
454 | (source | |
455 | (origin | |
456 | (method url-fetch) | |
457 | (uri (crate-uri "cbindgen" version)) | |
458 | (file-name (string-append name "-" version ".tar.gz")) | |
459 | (sha256 | |
460 | (base32 "0dgf49zij9rxnf0lv4k5gcmx1mxcz16czkk6q63anz0xp8ds3xhx")))) | |
461 | (arguments | |
462 | `(#:tests? #false ;missing files | |
463 | #:cargo-inputs | |
464 | (("rust-clap" ,rust-clap-2) | |
465 | ("rust-heck" ,rust-heck-0.3) | |
466 | ("rust-indexmap" ,rust-indexmap-1) | |
467 | ("rust-log" ,rust-log-0.4) | |
468 | ("rust-proc-macro2" ,rust-proc-macro2-1) | |
469 | ("rust-quote" ,rust-quote-1) | |
470 | ("rust-serde" ,rust-serde-1) | |
471 | ("rust-serde-json" ,rust-serde-json-1) | |
472 | ("rust-syn" ,rust-syn-1) | |
473 | ("rust-tempfile" ,rust-tempfile-3) | |
474 | ("rust-toml" ,rust-toml-0.5)))))) | |
475 | ||
cc2849bc MW |
476 | (define-public rust-cbindgen-0.14 |
477 | (package | |
478 | (inherit rust-cbindgen) | |
479 | (name "rust-cbindgen") | |
480 | (version "0.14.1") | |
481 | (source | |
482 | (origin | |
483 | (method url-fetch) | |
484 | (uri (crate-uri "cbindgen" version)) | |
485 | (file-name | |
486 | (string-append name "-" version ".tar.gz")) | |
487 | (sha256 | |
488 | (base32 | |
489 | "1ppwqbzydxlg9a24lynzfk60xrvqw4k31mpz1wrk6lbf88zf8nxi")))))) | |
490 | ||
ca4b5588 LF |
491 | (define-public rust-cbindgen-0.12 |
492 | (package | |
493 | (inherit rust-cbindgen) | |
494 | (name "rust-cbindgen") | |
495 | (version "0.12.2") | |
496 | (source | |
497 | (origin | |
498 | (method url-fetch) | |
499 | (uri (crate-uri "cbindgen" version)) | |
500 | (file-name | |
501 | (string-append name "-" version ".tar.gz")) | |
502 | (sha256 | |
503 | (base32 | |
504 | "13jzbmjz1bmmfr0i80hw6ar484mgabx3hbpb2ynhk0ddqi0yr58m")))))) | |
505 | ||
baa47f0b NG |
506 | (define-public tectonic |
507 | (package | |
508 | (name "tectonic") | |
509 | (version "0.4.1") | |
510 | (source | |
511 | (origin | |
512 | (method url-fetch) | |
513 | (uri (crate-uri "tectonic" version)) | |
514 | (file-name (string-append name "-" version ".tar.gz")) | |
515 | (sha256 | |
516 | (base32 "16fm2bfvfizrydmirzf0bhr1fidb5slcbvr6150and8yqr8jc4lf")))) | |
517 | (build-system cargo-build-system) | |
518 | (arguments | |
519 | `(#:cargo-inputs | |
520 | (("rust-app-dirs2" ,rust-app-dirs2-2) | |
521 | ("rust-atty" ,rust-atty-0.2) | |
522 | ("rust-byte-unit" ,rust-byte-unit-4) | |
523 | ("rust-cbindgen" ,rust-cbindgen-0.16) | |
524 | ("rust-cc" ,rust-cc-1) | |
525 | ("rust-cfg-if" ,rust-cfg-if-1) | |
526 | ("rust-error-chain" ,rust-error-chain-0.12) | |
527 | ("rust-flate2" ,rust-flate2-1) | |
528 | ("rust-fs2" ,rust-fs2-0.4) | |
529 | ("rust-headers" ,rust-headers-0.2) | |
530 | ("rust-lazy-static" ,rust-lazy-static-1) | |
531 | ("rust-libc" ,rust-libc-0.2) | |
532 | ("rust-md-5" ,rust-md-5-0.9) | |
533 | ("rust-pkg-config" ,rust-pkg-config-0.3) | |
534 | ("rust-regex" ,rust-regex-1) | |
535 | ("rust-reqwest" ,rust-reqwest-0.9) | |
536 | ("rust-serde" ,rust-serde-1) | |
537 | ("rust-sha2" ,rust-sha2-0.9) | |
538 | ("rust-structopt" ,rust-structopt-0.3) | |
539 | ("rust-tectonic-cfg-support" ,rust-tectonic-cfg-support-0.1) | |
540 | ("rust-tectonic-xdv" ,rust-tectonic-xdv-0.1) | |
541 | ("rust-tempfile" ,rust-tempfile-3) | |
542 | ("rust-termcolor" ,rust-termcolor-1) | |
543 | ("rust-toml" ,rust-toml-0.5) | |
544 | ("rust-vcpkg" ,rust-vcpkg-0.2) | |
545 | ("rust-zip" ,rust-zip-0.5)) | |
546 | #:cargo-development-inputs | |
547 | (("rust-filetime" ,rust-filetime-0.2) | |
548 | ("rust-futures" ,rust-futures-0.1) | |
549 | ("rust-headers" ,rust-headers-0.2) | |
550 | ("rust-hyper" ,rust-hyper-0.12) | |
551 | ("rust-tempfile" ,rust-tempfile-3) | |
552 | ("rust-tokio" ,rust-tokio-0.1)) | |
553 | #:phases | |
554 | (modify-phases %standard-phases | |
555 | (add-after 'install 'install-doc | |
556 | (lambda* (#:key outputs #:allow-other-keys) | |
557 | (let* ((out (assoc-ref outputs "out")) | |
558 | (doc (string-append out "/share/doc/" ,name "-" ,version))) | |
559 | (copy-recursively "docs/src" doc) | |
560 | #t)))))) | |
561 | (native-inputs | |
562 | `(("pkg-config" ,pkg-config))) | |
563 | (inputs | |
564 | `(("fontconfig" ,fontconfig) | |
565 | ("harfbuzz" ,harfbuzz) | |
566 | ("openssl" ,openssl) | |
567 | ("zlib" ,zlib))) | |
568 | (home-page "https://tectonic-typesetting.github.io/") | |
569 | (synopsis "Complete, embeddable TeX/LaTeX engine") | |
570 | (description | |
571 | "This package provides a modernized, complete, embeddable | |
572 | TeX/LaTeX engine. Tectonic is forked from the XeTeX extension to the | |
573 | classic Web2C implementation of TeX and uses the TeXLive distribution | |
574 | of support files.") | |
575 | (license license:expat))) | |
576 | ||
e29315b2 JS |
577 | (define-public tokei |
578 | (package | |
579 | (name "tokei") | |
d94f7530 | 580 | (version "12.1.2") |
e29315b2 | 581 | (source |
d94f7530 NG |
582 | (origin |
583 | (method url-fetch) | |
584 | (uri (crate-uri "tokei" version)) | |
585 | (file-name (string-append name "-" version ".tar.gz")) | |
586 | (sha256 | |
587 | (base32 "000w549v1bpw7r57xw656p40ywf1gimvxxx5cjnri2js0xg927x4")))) | |
e29315b2 JS |
588 | (build-system cargo-build-system) |
589 | (arguments | |
590 | `(#:cargo-inputs | |
d94f7530 NG |
591 | (("rust-aho-corasick" ,rust-aho-corasick-0.7) |
592 | ("rust-clap" ,rust-clap-2) | |
593 | ("rust-crossbeam-channel" ,rust-crossbeam-channel-0.5) | |
594 | ("rust-dashmap" ,rust-dashmap-4) | |
595 | ("rust-dirs" ,rust-dirs-3) | |
e29315b2 | 596 | ("rust-encoding-rs-io" ,rust-encoding-rs-io-0.1) |
d94f7530 | 597 | ("rust-env-logger" ,rust-env-logger-0.8) |
e29315b2 JS |
598 | ("rust-grep-searcher" ,rust-grep-searcher-0.1) |
599 | ("rust-hex" ,rust-hex-0.4) | |
600 | ("rust-ignore" ,rust-ignore-0.4) | |
601 | ("rust-log" ,rust-log-0.4) | |
d94f7530 NG |
602 | ("rust-num-format" ,rust-num-format-0.4) |
603 | ("rust-once-cell" ,rust-once-cell-1) | |
604 | ("rust-parking-lot" ,rust-parking-lot-0.11) | |
a5630553 | 605 | ("rust-rayon" ,rust-rayon-1) |
d94f7530 | 606 | ("rust-regex" ,rust-regex-1) |
271161db | 607 | ("rust-serde" ,rust-serde-1) |
d94f7530 NG |
608 | ("rust-serde-cbor" ,rust-serde-cbor-0.11) |
609 | ("rust-serde-json" ,rust-serde-json-1) | |
e29315b2 | 610 | ("rust-serde-yaml" ,rust-serde-yaml-0.8) |
d94f7530 | 611 | ("rust-tera" ,rust-tera-1) |
e29315b2 | 612 | ("rust-term-size" ,rust-term-size-0.3) |
c40e3d0b | 613 | ("rust-toml" ,rust-toml-0.5)) |
e29315b2 | 614 | #:cargo-development-inputs |
d94f7530 | 615 | (("rust-git2" ,rust-git2-0.13) |
6cd7b355 | 616 | ("rust-regex" ,rust-regex-1) |
3dbf3a7f | 617 | ("rust-tempfile" ,rust-tempfile-3)))) |
c40e3d0b | 618 | (native-inputs |
3dbf3a7f EF |
619 | `(("pkg-config" ,pkg-config))) |
620 | (inputs | |
c40e3d0b EF |
621 | `(("libgit2" ,libgit2) |
622 | ("openssl" ,openssl) | |
c40e3d0b | 623 | ("zlib" ,zlib))) |
e29315b2 JS |
624 | (home-page "https://tokei.rs") |
625 | (synopsis "Count code, quickly") | |
626 | (description | |
627 | "Tokei is a program that displays statistics about your code. Tokei will | |
628 | show number of files, total lines within those files and code, comments, and | |
629 | blanks grouped by language.") | |
630 | (license (list license:expat license:asl2.0)))) | |
ca4b5588 | 631 | |
b958e4be JK |
632 | (define-public watchexec |
633 | (package | |
634 | (name "watchexec") | |
4d047d19 | 635 | (version "1.14.1") |
b958e4be JK |
636 | (source |
637 | (origin | |
638 | (method url-fetch) | |
639 | (uri (crate-uri "watchexec" version)) | |
640 | (file-name | |
641 | (string-append name "-" version ".tar.gz")) | |
642 | (sha256 | |
4d047d19 | 643 | (base32 "1vqaa462sjpzi0crh12ixqc2wa5bblirc129pnj8jr8iz3xw3gvd")))) |
b958e4be JK |
644 | (build-system cargo-build-system) |
645 | (arguments | |
646 | `(#:phases | |
647 | (modify-phases %standard-phases | |
648 | (add-after 'install 'install-completions | |
649 | (lambda* (#:key outputs #:allow-other-keys) | |
650 | (let* ((out (assoc-ref outputs "out")) | |
651 | (zsh (string-append out "/share/zsh/site-functions/_watchexec")) | |
652 | (doc (string-append out "/share/doc/watchexec-" ,version))) | |
653 | (mkdir-p (dirname zsh)) | |
654 | (copy-file "completions/zsh" zsh) | |
655 | (install-file "README.md" doc) | |
656 | #t)))) | |
657 | #:cargo-inputs | |
0f27a97c | 658 | (("rust-embed-resource" ,rust-embed-resource-1) |
b958e4be JK |
659 | ("rust-derive-builder" ,rust-derive-builder-0.9) |
660 | ("rust-env-logger" ,rust-env-logger-0.7) | |
661 | ("rust-glob" ,rust-glob-0.3) | |
662 | ("rust-globset" ,rust-globset-0.4) | |
663 | ("rust-lazy-static" ,rust-lazy-static-1) | |
664 | ("rust-log" ,rust-log-0.4) | |
665 | ("rust-nix" ,rust-nix-0.17) | |
666 | ("rust-notify" ,rust-notify-4) | |
4d047d19 | 667 | ("rust-walkdir" ,rust-walkdir-2)))) |
b958e4be JK |
668 | (home-page "https://github.com/watchexec/watchexec") |
669 | (synopsis "Executes commands in response to file modifications") | |
670 | (description | |
671 | "@command{watchexec} is a simple, standalone tool that watches a path and runs | |
672 | a command whenever it detects modifications. | |
673 | ||
674 | Example use cases: | |
675 | @itemize @bullet | |
676 | @item Automatically run unit tests | |
677 | @item Run linters/syntax checkers | |
678 | @end itemize | |
679 | ||
680 | Features: | |
681 | @itemize @bullet | |
7230f6d5 | 682 | @item Coalesces multiple file system events into one, for editors that |
b958e4be JK |
683 | use swap/backup files during saving |
684 | @item By default, uses @code{.gitignore} and @code{.ignore} to determine which | |
685 | files to ignore notifications for | |
686 | @item Supports watching files with a specific extension | |
687 | @item Supports filtering/ignoring events based on glob patterns | |
688 | @item Launches child processes in a new process group | |
689 | @item Sets environment variables that allow the executed program to learn | |
690 | the details of how it was triggered. | |
691 | @end itemize") | |
692 | (license license:asl2.0))) | |
693 | ||
ca4b5588 LF |
694 | (define-public rust-cargo-c |
695 | (package | |
696 | (name "rust-cargo-c") | |
366a23f8 | 697 | (version "0.5.3") |
ca4b5588 LF |
698 | (source |
699 | (origin | |
700 | (method url-fetch) | |
701 | (uri (crate-uri "cargo-c" version)) | |
702 | (file-name | |
703 | (string-append name "-" version ".tar.gz")) | |
704 | (sha256 | |
705 | (base32 | |
366a23f8 | 706 | "0hsag5g4qngm8alfil2dyvl5sagpqi5nb40c7bhwng2z8mv9r41k")))) |
ca4b5588 LF |
707 | (build-system cargo-build-system) |
708 | (arguments | |
709 | `(#:cargo-inputs | |
366a23f8 EF |
710 | (("rust-cbindgen" ,rust-cbindgen) |
711 | ("rust-pretty-env-logger" ,rust-pretty-env-logger-0.4) | |
ca4b5588 LF |
712 | ("rust-structopt" ,rust-structopt-0.3) |
713 | ("rust-log" ,rust-log-0.4) | |
714 | ("rust-toml" ,rust-toml-0.5) | |
715 | ("rust-cargo-metadata" ,rust-cargo-metadata-0.9) | |
271161db | 716 | ("rust-serde" ,rust-serde-1) |
ef1f71e0 | 717 | ("rust-serde-derive" ,rust-serde-derive-1) |
6cd7b355 | 718 | ("rust-regex" ,rust-regex-1)))) |
ca4b5588 LF |
719 | (home-page "https://github.com/lu-zero/cargo-c") |
720 | (synopsis "Build and install C-compatible libraries") | |
721 | (description | |
722 | "This package produces and installs a correct pkg-config file, a static | |
723 | library and a dynamic library, and a C header to be used by any C (and | |
724 | C-compatible) software.") | |
725 | (license license:expat))) |