gnu: Add fd.
* gnu/packages/crates-io.scm (fd): New variable. Signed-off-by: Efraim Flashner <efraim@flashner.co.il>master
parent
e45242abe2
commit
0f7720d1b0
|
@ -24,6 +24,7 @@
|
|||
#:use-module (guix packages)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages crates-io)
|
||||
#:use-module (gnu packages jemalloc)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (gnu packages tls)
|
||||
#:use-module (gnu packages version-control))
|
||||
|
@ -125,6 +126,76 @@ 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 "7.4.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (crate-uri "fd-find" version))
|
||||
(file-name
|
||||
(string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"147m872zff0srwq9vaxkkbab06g3fkklbk1g2lx90vdhgs37f5xj"))))
|
||||
(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-ctrlc" ,rust-ctrlc-3.1)
|
||||
("rust-globset" ,rust-globset-0.4)
|
||||
("rust-humantime" ,rust-humantime-1.3)
|
||||
("rust-ignore" ,rust-ignore-0.4)
|
||||
("rust-jemallocator" ,rust-jemallocator-0.3)
|
||||
("rust-lazy-static" ,rust-lazy-static-1.4)
|
||||
("rust-libc" ,rust-libc-0.2)
|
||||
("rust-lscolors" ,rust-lscolors-0.6)
|
||||
("rust-num-cpus" ,rust-num-cpus-1.10)
|
||||
("rust-regex" ,rust-regex-1.3)
|
||||
("rust-regex-syntax" ,rust-regex-syntax-0.6)
|
||||
("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 ripgrep
|
||||
(package
|
||||
(name "ripgrep")
|
||||
|
|
Reference in New Issue