From 35c11909fec0f1e91c0e60cadaa49a906b379682 Mon Sep 17 00:00:00 2001 From: Rutherther Date: Fri, 9 Aug 2024 18:35:18 +0200 Subject: [PATCH] feat: add ripgrep-all --- pkgs/ripgrep-all.scm | 338 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 338 insertions(+) create mode 100644 pkgs/ripgrep-all.scm diff --git a/pkgs/ripgrep-all.scm b/pkgs/ripgrep-all.scm new file mode 100644 index 0000000..f5bd131 --- /dev/null +++ b/pkgs/ripgrep-all.scm @@ -0,0 +1,338 @@ +(use-modules + ((guix licenses) #:prefix license:) + (guix utils) + (guix packages) + (guix download) + (guix git-download) + (guix gexp) + (gnu packages crates-io) + (guix build-system cargo) + (gnu packages pkg-config) + (gnu packages compression) + (gnu packages video) + (gnu packages haskell-xyz) + (gnu packages pdf) + (gnu packages rust-apps) + (gnu packages terminals)) + +(define-public rust-tokio-tar-0.3 + (package + (name "rust-tokio-tar") + (version "0.3.1") + (source + (origin + (method url-fetch) + (uri (crate-uri "tokio-tar" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "0xffvap4g7hlswk5daklk3jaqha6s6wxw72c24kmqgna23018mwx")))) + (build-system cargo-build-system) + (arguments + `(#:skip-build? #t + #:cargo-inputs (("rust-filetime" ,rust-filetime-0.2) + ("rust-futures-core" ,rust-futures-core-0.3) + ("rust-libc" ,rust-libc-0.2) + ("rust-redox-syscall" ,rust-redox-syscall-0.3) + ("rust-tokio" ,rust-tokio-1) + ("rust-tokio-stream" ,rust-tokio-stream-0.1) + ("rust-xattr" ,rust-xattr-1)))) + (home-page "https://github.com/vorot93/tokio-tar") + (synopsis + "Rust implementation of an async TAR file reader and writer. This library does not +currently handle compression, but it is abstract over all I/O readers and +writers. Additionally, great lengths are taken to ensure that the entire +contents are never required to be entirely resident in memory all at once.") + (description + "This package provides a Rust implementation of an async TAR file reader and +writer. This library does not currently handle compression, but it is abstract +over all I/O readers and writers. Additionally, great lengths are taken to +ensure that the entire contents are never required to be entirely resident in +memory all at once.") + (license (list license:expat license:asl2.0)))) + +(define-public rust-tokio-rusqlite-0.5 + (package + (name "rust-tokio-rusqlite") + (version "0.5.1") + (source + (origin + (method url-fetch) + (uri (crate-uri "tokio-rusqlite" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "09xihas30j72dda5pi3hw5693y79ffby7bs9cpy8kw144iqmzk62")))) + (build-system cargo-build-system) + (arguments + `(#:skip-build? #t + #:cargo-inputs (("rust-crossbeam-channel" ,rust-crossbeam-channel-0.5) + ("rust-rusqlite" ,rust-rusqlite-0.31) + ("rust-tokio" ,rust-tokio-1)))) + (home-page "https://github.com/programatik29/tokio-rusqlite") + (synopsis "Asynchronous handle for rusqlite library") + (description + "This package provides Asynchronous handle for rusqlite library.") + (license license:expat))) + +(define-public rust-size-format-1 + (package + (name "rust-size-format") + (version "1.0.2") + (source + (origin + (method url-fetch) + (uri (crate-uri "size_format" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "0fxjl0rc0x7yc14x885dh7jjf2jrlhpwf66akp3dxii246mzdmbf")))) + (build-system cargo-build-system) + (arguments + `(#:skip-build? #t + #:cargo-inputs (("rust-generic-array" ,rust-generic-array-0.12) + ("rust-num" ,rust-num-0.2)))) + (home-page "https://github.com/aticu/size_format") + (synopsis "Allows for easier formatting of sizes") + (description + "This package provides Allows for easier formatting of sizes.") + (license (list license:expat license:asl2.0)))) + +(define-public rust-pretty-bytes-0.2 + (package + (name "rust-pretty-bytes") + (version "0.2.2") + (source + (origin + (method url-fetch) + (uri (crate-uri "pretty-bytes" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "05jkd1f824b93jh0jwfskba9hd70crvjz2nl1hf2xgqx5kfnx780")))) + (build-system cargo-build-system) + (arguments + `(#:skip-build? #t + #:cargo-inputs (("rust-atty" ,rust-atty-0.2) + ("rust-getopts" ,rust-getopts-0.2)))) + (home-page "https://github.com/banyan/rust-pretty-bytes") + (synopsis "Convert bytes to a human readable string") + (description + "This package provides Convert bytes to a human readable string.") + (license license:expat))) + +(define-public rust-mime2ext-0.1 + (package + (name "rust-mime2ext") + (version "0.1.52") + (source + (origin + (method url-fetch) + (uri (crate-uri "mime2ext" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "0w2cb2nmfnj7npkn1kvy1pcyknxdh7676mwqn5j0xm7bd585ma51")))) + (build-system cargo-build-system) + (arguments + `(#:skip-build? #t)) + (home-page "https://github.com/blyxxyz/mime2ext") + (synopsis "Given a mimetype, suggest a file extension") + (description + "This package provides Given a mimetype, suggest a file extension.") + (license license:expat))) + +(define-public rust-json-comments-0.2 + (package + (name "rust-json-comments") + (version "0.2.2") + (source + (origin + (method url-fetch) + (uri (crate-uri "json_comments" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "0191qf6gaw3bcv13kx9xzwbfx71jv7gly5ds2l77bacvwpagxfwx")))) + (build-system cargo-build-system) + (arguments + `(#:skip-build? #t)) + (home-page "https://github.com/tmccombs/json-comments-rs") + (synopsis "Library to strip comments from JSON before parsing") + (description + "This package provides Library to strip comments from JSON before parsing.") + (license license:asl2.0))) + +(define-public rust-dyn-clonable-impl-0.9 + (package + (name "rust-dyn-clonable-impl") + (version "0.9.0") + (source + (origin + (method url-fetch) + (uri (crate-uri "dyn-clonable-impl" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "1icrjdqiriiy6abxpsygyxylgxg2gq5j9z876pslqdrwazm413jm")))) + (build-system cargo-build-system) + (arguments + `(#:skip-build? #t + #:cargo-inputs (("rust-proc-macro2" ,rust-proc-macro2-1) + ("rust-quote" ,rust-quote-1) + ("rust-syn" ,rust-syn-1)))) + (home-page "https://github.com/kardeiz/objekt-clonable") + (synopsis "Attribute wrapper for dyn-clone") + (description "This package provides Attribute wrapper for dyn-clone.") + (license license:expat))) + +(define-public rust-dyn-clonable-0.9 + (package + (name "rust-dyn-clonable") + (version "0.9.0") + (source + (origin + (method url-fetch) + (uri (crate-uri "dyn-clonable" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "1m4zlp5phn44znxqj6dkjilxpr5kvyil2ldxp77658h7wvq354jf")))) + (build-system cargo-build-system) + (arguments + `(#:skip-build? #t + #:cargo-inputs (("rust-dyn-clonable-impl" ,rust-dyn-clonable-impl-0.9) + ("rust-dyn-clone" ,rust-dyn-clone-1)))) + (home-page "https://github.com/kardeiz/objekt-clonable") + (synopsis "Attribute wrapper for dyn-clone") + (description "This package provides Attribute wrapper for dyn-clone.") + (license license:expat))) + +(define-public rust-async-zip-0.0.12 + (package + (name "rust-async-zip") + (version "0.0.12") + (source + (origin + (method url-fetch) + (uri (crate-uri "async_zip" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "1l1l6iyg8hkbnjilj50vndn9ln4l6dav10ywvawh6qlwvd15245j")))) + (build-system cargo-build-system) + (arguments + `(#:skip-build? #t + #:cargo-inputs (("rust-async-compression" ,rust-async-compression-0.3) + ("rust-chrono" ,rust-chrono-0.4) + ("rust-crc32fast" ,rust-crc32fast-1) + ("rust-log" ,rust-log-0.4) + ("rust-pin-project" ,rust-pin-project-1) + ("rust-thiserror" ,rust-thiserror-1) + ("rust-tokio" ,rust-tokio-1)))) + (home-page "https://github.com/Majored/rs-async-zip") + (synopsis "An asynchronous ZIP archive reading/writing crate") + (description + "This package provides An asynchronous ZIP archive reading/writing crate.") + (license license:expat))) + +(define-public ripgrep-all + (let ((wrap-paths + (list ffmpeg + pandoc + poppler + ripgrep + zip + fzf))) + (package + (name "ripgrep-all") + (version "0.10.6") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/phiresky/ripgrep-all") + (commit (string-append "v" version)))) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "0ws0shf0y5z8wxaanlwjrpq604saffj1gr5jsfmvs6r2p4px3kly")) + (snippet + #~(begin (use-modules (guix build utils)) + (substitute* "Cargo.toml" + (("0\\.30\\.0") "0.31.0") + (("git = .*,") "")))))) + (build-system cargo-build-system) + (native-inputs + `(,pkg-config ,xz ,@wrap-paths)) + (inputs + (list + `(,zstd "lib"))) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'install 'wrap-with-paths + (lambda* (#:key native-inputs inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin-dir (string-append out "/bin/")) + (wrap-bin-folders (map (lambda (pkg) + (string-append pkg "/bin")) '#$wrap-paths)) + (wrap-bin-path (string-join wrap-bin-folders ":"))) + (for-each (lambda (bin) + (wrap-program bin + `("PATH" ":" prefix + (,wrap-bin-path)))) (find-files bin-dir)))))) + #:cargo-test-flags + `(list + "--release" "--" + "--skip=adapters::mbox::tests::mail_simple" + "--skip=adapters::mbox::tests::mbox_simple" + "--skip=adapters::mbox::tests::mbox_attachment") + #:cargo-inputs + `(("rust-anyhow" ,rust-anyhow-1) + ("rust-async-compression" ,rust-async-compression-0.4) + ("rust-async-stream" ,rust-async-stream-0.3) + ("rust-async-trait" ,rust-async-trait-0.1) + ("rust-async-zip" ,rust-async-zip-0.0.12) + ("rust-bincode" ,rust-bincode-1) + ("rust-bytes" ,rust-bytes-1) + ("rust-clap" ,rust-clap-4) + ("rust-crossbeam" ,rust-crossbeam-0.8) + ("rust-crossbeam-channel" ,rust-crossbeam-channel-0.5) + ("rust-derive-more" ,rust-derive-more-0.99) + ("rust-directories-next" ,rust-directories-next-2) + ("rust-dyn-clonable" ,rust-dyn-clonable-0.9) + ("rust-dyn-clone" ,rust-dyn-clone-1) + ("rust-encoding-rs" ,rust-encoding-rs-0.8) + ("rust-encoding-rs-io" ,rust-encoding-rs-io-0.1) + ("rust-env-logger" ,rust-env-logger-0.10) + ("rust-glob" ,rust-glob-0.3) + ("rust-json-comments" ,rust-json-comments-0.2) + ("rust-lazy-static" ,rust-lazy-static-1) + ("rust-log" ,rust-log-0.4) + ("rust-mailparse" ,rust-mailparse-0.14) + ("rust-memchr" ,rust-memchr-2) + ("rust-mime2ext" ,rust-mime2ext-0.1) + ("rust-paste" ,rust-paste-1) + ("rust-path-clean" ,rust-path-clean-1) + ("rust-pretty-bytes" ,rust-pretty-bytes-0.2) + ("rust-regex" ,rust-regex-1) + ("rust-rusqlite" ,rust-rusqlite-0.31) + ("rust-schemars" ,rust-schemars-0.8) + ("rust-serde" ,rust-serde-1) + ("rust-serde-json" ,rust-serde-json-1) + ("rust-size-format" ,rust-size-format-1) + ("rust-structopt" ,rust-structopt-0.3) + ("rust-tempfile" ,rust-tempfile-3) + ("rust-tokio" ,rust-tokio-1) + ("rust-tokio-rusqlite" ,rust-tokio-rusqlite-0.5) + ("rust-tokio-stream" ,rust-tokio-stream-0.1) + ("rust-tokio-tar" ,rust-tokio-tar-0.3) + ("rust-tokio-util" ,rust-tokio-util-0.7) + ("rust-tree-magic-mini" ,rust-tree-magic-mini-3)) + #:cargo-development-inputs + `(("rust-async-recursion" ,rust-async-recursion-1) + ("rust-ctor" ,rust-ctor-0.2) + ("rust-pretty-assertions" ,rust-pretty-assertions-1) + ("rust-tempfile" ,rust-tempfile-3) + ("rust-tokio-test" ,rust-tokio-test-0.4)))) + (home-page "https://github.com/phiresky/ripgrep-all") + (synopsis + "rga: ripgrep, but also search in PDFs, E-Books, Office documents, zip, tar.gz, etc") + (description + "This package provides rga: ripgrep, but also search in PDFs, E-Books, Office documents, zip, tar.gz, +etc.") + (license license:agpl3+)))) + +ripgrep-all -- 2.48.1