eb11feaa0b
Changes the default fetcher in the Rust Platform to be the newer `fetchCargoTarball`, and changes every application using the current default to instead opt out. This commit does not change any hashes or cause any rebuilds. Once integrated, we will start deleting the opt-outs and recomputing hashes. See #79975 for details.
66 lines
2.1 KiB
Nix
66 lines
2.1 KiB
Nix
{ stdenv, lib, fetchFromGitHub, rustPlatform, makeWrapper, ffmpeg
|
|
, pandoc, poppler_utils, ripgrep, Security, imagemagick, tesseract
|
|
}:
|
|
|
|
rustPlatform.buildRustPackage rec {
|
|
pname = "ripgrep-all";
|
|
version = "0.9.3";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "phiresky";
|
|
repo = pname;
|
|
rev = version;
|
|
sha256 = "0fxvnd8qflzvqz2181njdhpbr4wdvd1jc6lcw38c3pknk9h3ymq9";
|
|
};
|
|
|
|
# Delete this on next update; see #79975 for details
|
|
legacyCargoFetcher = true;
|
|
|
|
cargoSha256 = "1jcwipsb7sl65ky78cypl4qvjvxvv4sjlwcg1pirgmqikcyiiy2l";
|
|
nativeBuildInputs = [ makeWrapper ];
|
|
buildInputs = lib.optional stdenv.isDarwin Security;
|
|
|
|
postInstall = ''
|
|
wrapProgram $out/bin/rga \
|
|
--prefix PATH ":" "${lib.makeBinPath [ ffmpeg pandoc poppler_utils ripgrep imagemagick tesseract ]}"
|
|
'';
|
|
|
|
# Use upstream's example data to run a couple of queries to ensure the dependencies
|
|
# for all of the adapters are available.
|
|
installCheckPhase = ''
|
|
set -e
|
|
export PATH="$PATH:$out/bin"
|
|
|
|
test1=$(rga --rga-no-cache "hello" exampledir/ | wc -l)
|
|
test2=$(rga --rga-no-cache --rga-adapters=tesseract "crate" exampledir/screenshot.png | wc -l)
|
|
|
|
if [ $test1 != 26 ]
|
|
then
|
|
echo "ERROR: test1 failed! Could not find the word 'hello' 26 times in the sample data."
|
|
exit 1
|
|
fi
|
|
|
|
if [ $test2 != 1 ]
|
|
then
|
|
echo "ERROR: test2 failed! Could not find the word 'crate' in the screenshot."
|
|
exit 1
|
|
fi
|
|
'';
|
|
|
|
doInstallCheck = true;
|
|
|
|
meta = with stdenv.lib; {
|
|
description = "Ripgrep, but also search in PDFs, E-Books, Office documents, zip, tar.gz, and more";
|
|
longDescription = ''
|
|
Ripgrep, but also search in PDFs, E-Books, Office documents, zip, tar.gz, etc.
|
|
|
|
rga is a line-oriented search tool that allows you to look for a regex in
|
|
a multitude of file types. rga wraps the awesome ripgrep and enables it
|
|
to search in pdf, docx, sqlite, jpg, movie subtitles (mkv, mp4), etc.
|
|
'';
|
|
homepage = https://github.com/phiresky/ripgrep-all;
|
|
license = with licenses; [ agpl3Plus ];
|
|
maintainers = with maintainers; [ zaninime ma27 ];
|
|
platforms = platforms.all;
|
|
};
|
|
}
|