+(define-public agate
+ (package
+ (name "agate")
+ (version "2.5.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "agate" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "1mhrl4j5r6wzsnwpqsbgzny5vqschyjm3gnk4y88har7skk7j19v"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:cargo-inputs
+ (("rust-configparser" ,rust-configparser-2)
+ ("rust-env-logger" ,rust-env-logger-0.8)
+ ("rust-getopts" ,rust-getopts-0.2)
+ ("rust-glob" ,rust-glob-0.3)
+ ("rust-log" ,rust-log-0.4)
+ ("rust-mime-guess" ,rust-mime-guess-2)
+ ("rust-once-cell" ,rust-once-cell-1)
+ ("rust-percent-encoding" ,rust-percent-encoding-2)
+ ("rust-rustls" ,rust-rustls-0.19)
+ ("rust-tokio" ,rust-tokio-1)
+ ("rust-tokio-rustls" ,rust-tokio-rustls-0.22)
+ ("rust-url" ,rust-url-2))))
+ (home-page "https://github.com/mbrubeck/agate")
+ (synopsis "Very simple server for the Gemini hypertext protocol")
+ (description
+ "Agate is a server for the Gemini network protocol, built with the Rust
+programming language. It has very few features, and can only serve static
+files. It uses async I/O, and should be quite efficient even when running on
+low-end hardware and serving many concurrent requests.")
+ (license (list license:expat license:asl2.0))))
+
+(define-public bat
+ (package
+ (name "bat")
+ (version "0.18.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "bat" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "1hr6vzkw8mdy9v0sg1pg9gibamabhip05s7zdkwzwlv69qnhgs1z"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:cargo-inputs
+ (("rust-ansi-colours" ,rust-ansi-colours-1)
+ ("rust-ansi-term" ,rust-ansi-term-0.12)
+ ("rust-atty" ,rust-atty-0.2)
+ ("rust-bugreport" ,rust-bugreport-0.3)
+ ("rust-clap" ,rust-clap-2)
+ ("rust-clircle" ,rust-clircle-0.3)
+ ("rust-console" ,rust-console-0.14)
+ ("rust-content-inspector" ,rust-content-inspector-0.2)
+ ("rust-dirs-next" ,rust-dirs-next-2)
+ ("rust-encoding" ,rust-encoding-0.2)
+ ("rust-error-chain" ,rust-error-chain-0.12)
+ ("rust-git2" ,rust-git2-0.13)
+ ("rust-globset" ,rust-globset-0.4)
+ ("rust-lazy-static" ,rust-lazy-static-1)
+ ("rust-path-abs" ,rust-path-abs-0.5)
+ ("rust-semver" ,rust-semver-0.11)
+ ("rust-serde" ,rust-serde-1)
+ ("rust-serde-yaml" ,rust-serde-yaml-0.8)
+ ("rust-shell-words" ,rust-shell-words-1)
+ ("rust-syntect" ,rust-syntect-4)
+ ("rust-unicode-width" ,rust-unicode-width-0.1)
+ ("rust-wild" ,rust-wild-2))
+ #:cargo-development-inputs
+ (("rust-assert-cmd" ,rust-assert-cmd-1)
+ ("rust-nix" ,rust-nix-0.19)
+ ("rust-predicates" ,rust-predicates-1)
+ ("rust-serial-test" ,rust-serial-test-0.5)
+ ("rust-tempfile" ,rust-tempfile-3)
+ ("rust-wait-timeout" ,rust-wait-timeout-0.2))))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (inputs
+ `(("libgit2" ,libgit2)
+ ("zlib" ,zlib)))
+ (home-page "https://github.com/sharkdp/bat")
+ (synopsis "@command{cat} clone with syntax highlighting and git integration")
+ (description
+ "@command{bat} is a drop-in @command{cat} replacement featuring syntax
+highlighting for a large number of languages, git integration, and automatic
+paging.")
+ (license (list license:expat license:asl2.0))))
+
+(define-public drill
+ (package
+ (name "drill")
+ (version "0.7.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "drill" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "1m73d7rzi0p5c1hn0081d2235kcyapdza7h0vqf5jhnirpnjn793"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:cargo-inputs
+ (("rust-async-trait" ,rust-async-trait-0.1)
+ ("rust-clap" ,rust-clap-2)
+ ("rust-colored" ,rust-colored-1)
+ ("rust-csv" ,rust-csv-1)
+ ("rust-futures" ,rust-futures-0.3)
+ ("rust-lazy-static" ,rust-lazy-static-1)
+ ("rust-linked-hash-map" ,rust-linked-hash-map-0.5)
+ ("rust-num-cpus" ,rust-num-cpus-1)
+ ("rust-rand" ,rust-rand-0.7)
+ ("rust-regex" ,rust-regex-1)
+ ("rust-reqwest" ,rust-reqwest-0.10)
+ ("rust-serde" ,rust-serde-1)
+ ("rust-serde-json" ,rust-serde-json-1)
+ ("rust-tokio" ,rust-tokio-0.2)
+ ("rust-url" ,rust-url-2)
+ ("rust-yaml-rust" ,rust-yaml-rust-0.4))))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (inputs
+ `(("openssl" ,openssl)))
+ (home-page "https://github.com/fcsonline/drill")
+ (synopsis "HTTP load testing application")
+ (description
+ "Drill is a HTTP load testing application written in Rust inspired by
+Ansible syntax. Benchmark files can be written in YAML.")
+ (license license:gpl3)))
+
+(define-public exa
+ (package
+ (name "exa")
+ (version "0.9.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "exa" version))
+ (file-name
+ (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1s902xgplz1167k0r7x235p914lprpsqy2if0kpa1mlb0fswqqq4"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:cargo-inputs
+ (("rust-ansi-term" ,rust-ansi-term-0.12)
+ ("rust-datetime" ,rust-datetime-0.4)
+ ("rust-env-logger" ,rust-env-logger-0.6)
+ ("rust-git2" ,rust-git2-0.9)
+ ("rust-glob" ,rust-glob-0.3)
+ ("rust-lazy-static" ,rust-lazy-static-1)
+ ("rust-libc" ,rust-libc-0.2)
+ ("rust-locale" ,rust-locale-0.2)
+ ("rust-log" ,rust-log-0.4)
+ ("rust-natord" ,rust-natord-1)
+ ("rust-num-cpus" ,rust-num-cpus-1)
+ ("rust-number-prefix" ,rust-number-prefix-0.3)
+ ("rust-scoped-threadpool" ,rust-scoped-threadpool-0.1)
+ ("rust-term-grid" ,rust-term-grid-0.1)
+ ("rust-term-size" ,rust-term-size-0.3)
+ ("rust-unicode-width" ,rust-unicode-width-0.1)
+ ("rust-users" ,rust-users-0.9)
+ ("rust-zoneinfo-compiled" ,rust-zoneinfo-compiled-0.4))
+ #:cargo-development-inputs
+ (("rust-datetime" ,rust-datetime-0.4))
+ #:phases
+ (modify-phases %standard-phases
+ ;; Ignoring failing tests.
+ ;; Reported in https://github.com/ogham/exa/issues/318
+ (add-before 'check 'disable-failing-tests
+ (lambda _
+ (substitute* "src/options/mod.rs"
+ (("^.*fn oneline_across.*" oneline-across)
+ (string-append "#[ignore]\n" oneline-across)))
+
+ (substitute* "src/options/view.rs"
+ (("test!\\(across:.*") "")
+ (("test!\\(cr:.*") "")
+ (("test!\\(empty:.*") "")
+ (("test!\\(gracross:.*") "")
+ (("test!\\(grid:.*") "")
+ (("test!\\(icons:.*") "")
+ (("test!\\(just_binary:.*") "")
+ (("test!\\(just_blocks:.*") "")
+ (("test!\\(just_bytes:.*") "")
+ (("test!\\(just_git:.*") "")
+ (("test!\\(just_group:.*") "")
+ (("test!\\(just_header:.*") "")
+ (("test!\\(just_inode:.*") "")
+ (("test!\\(just_links:.*") "")
+ (("test!\\(leg:.*") "")
+ (("test!\\(lid:.*") "")
+ (("test!\\(original_g:.*") ""))
+ #t))
+ (add-after 'install 'install-extras
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (share (string-append out "/share"))
+ (man1 (string-append share "/man/man1")))
+ (install-file "contrib/man/exa.1" man1)
+ (mkdir-p (string-append out "/etc/bash_completion.d"))
+ (mkdir-p (string-append share "/fish/vendor_completions.d"))
+ (mkdir-p (string-append share "/zsh/site-functions"))
+ (copy-file "contrib/completions.bash"
+ (string-append out "/etc/bash_completion.d/exa"))
+ (copy-file "contrib/completions.fish"
+ (string-append share "/fish/vendor_completions.d/exa.fish"))
+ (copy-file "contrib/completions.zsh"
+ (string-append share "/zsh/site-functions/_exa"))
+ #t))))))
+ (inputs
+ `(("libgit2" ,libgit2)
+ ("zlib" ,zlib)))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (home-page "https://the.exa.website/")
+ (synopsis "Modern replacement for ls")
+ (description "@code{exa} is a modern replacement for the command-line
+program @code{ls}. It uses colours to distinguish file types and metadata. It
+also knows about symlinks, extended attributes, and Git.")
+ (license license:expat)))
+
+(define-public fd
+ (package
+ (name "fd")
+ (version "8.1.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "fd-find" version))
+ (file-name
+ (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "124a5r8hpk2phs1288jybh34d48yxy44wr7gv5ggchs272gs2jam"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:cargo-inputs
+ (("rust-ansi-term" ,rust-ansi-term-0.12)
+ ("rust-anyhow" ,rust-anyhow-1)
+ ("rust-atty" ,rust-atty-0.2)
+ ("rust-clap" ,rust-clap-2)
+ ("rust-ctrlc" ,rust-ctrlc-3)
+ ("rust-dirs" ,rust-dirs-2)
+ ("rust-globset" ,rust-globset-0.4)
+ ("rust-humantime" ,rust-humantime-2)
+ ("rust-ignore" ,rust-ignore-0.4)
+ ("rust-jemallocator" ,rust-jemallocator-0.3)
+ ("rust-lazy-static" ,rust-lazy-static-1)
+ ("rust-libc" ,rust-libc-0.2)
+ ("rust-lscolors" ,rust-lscolors-0.7)
+ ("rust-num-cpus" ,rust-num-cpus-1)
+ ("rust-regex" ,rust-regex-1)
+ ("rust-regex-syntax" ,rust-regex-syntax-0.6)
+ ("rust-users" ,rust-users-0.10)
+ ("rust-version-check" ,rust-version-check-0.9))
+ #:cargo-development-inputs
+ (("rust-diff" ,rust-diff-0.1)
+ ("rust-filetime" ,rust-filetime-0.2)
+ ("rust-tempdir" ,rust-tempdir-0.3))
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'override-jemalloc
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((jemalloc (assoc-ref inputs "jemalloc")))
+ (setenv "JEMALLOC_OVERRIDE"
+ (string-append jemalloc "/lib/libjemalloc.so")))
+ #t))
+ (add-after 'install 'install-extra
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (install-completion
+ (lambda (completion out-dir)
+ (for-each
+ (lambda (f)
+ (install-file f (string-append out out-dir)))
+ (find-files "target/release/build/" completion)))))
+ ;; Manpages
+ (install-file "doc/fd.1" (string-append out "/share/man/man1"))
+ ;; Completions
+ (install-completion "^fd.bash$" "/etc/bash_completion.d")
+ (install-completion "^fd.fish$" "/share/fish/vendor_completions.d")
+ (install-completion "^_fd$" "/share/zsh/site-functions")
+ (rename-file (string-append out "/etc/bash_completion.d/fd.bash")
+ (string-append out "/etc/bash_completion.d/fd"))
+ #t))))))
+ (inputs `(("jemalloc" ,jemalloc)))
+ (home-page "https://github.com/sharkdp/fd")
+ (synopsis "Simple, fast and user-friendly alternative to find")
+ (description
+ "@code{fd} is a simple, fast and user-friendly alternative to @code{find}.
+While it does not seek to mirror all of find's powerful functionality, it
+provides defaults for 80% of the use cases.")
+ (license (list license:expat license:asl2.0))))
+
+(define-public hexyl
+ (package
+ (name "hexyl")
+ (version "0.8.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "hexyl" version))
+ (file-name
+ (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0sipag77196467idbznbk5q5lwhqz85zw7y1pwg9b27jxqyk04rp"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:cargo-inputs
+ (("rust-ansi-term" ,rust-ansi-term-0.12)
+ ("rust-atty" ,rust-atty-0.2)
+ ("rust-clap" ,rust-clap-2)
+ ("rust-libc" ,rust-libc-0.2))))
+ (home-page "https://github.com/sharkdp/hexyl")
+ (synopsis "Command-line hex viewer")
+ (description
+ "This package provides a command line hex viewer. It uses a colored output
+for distinguishing different kinds of bytes such as NULL bytes, printable ASCII
+characters, ASCII whitespace characters, other ASCII characters and non-ASCII.")
+ (license (list license:expat license:asl2.0))))
+