This is https://sgrep.sourceforge.net/, which is quite useful for finding lines in very large sorted files.
57 lines
1.3 KiB
Nix
57 lines
1.3 KiB
Nix
{ stdenv, fetchurl, lib }:
|
|
|
|
stdenv.mkDerivation rec {
|
|
pname = "sorted-grep";
|
|
version = "1.0";
|
|
|
|
src = fetchurl {
|
|
url = "mirror://sourceforge/sgrep/sgrep-${version}.tgz";
|
|
hash = "sha256-3F7cXrZnB38YwE1sHYm/CIGKmG+1c0QU+Pk3Y53a0T4=";
|
|
};
|
|
|
|
postPatch = ''
|
|
# Its Makefile is missing compiler flags and an install step
|
|
rm -f Makefile
|
|
'';
|
|
|
|
buildPhase = ''
|
|
runHook preBuild
|
|
|
|
${stdenv.cc.targetPrefix}cc -Wall -O2 -o sgrep sgrep.c
|
|
|
|
runHook postBuild
|
|
'';
|
|
|
|
installPhase = ''
|
|
runHook preInstall
|
|
|
|
install -D sgrep "$out/bin/sgrep"
|
|
|
|
runHook postInstall
|
|
'';
|
|
|
|
installCheckPhase = ''
|
|
runHook preInstallCheck
|
|
|
|
set +o pipefail
|
|
$out/bin/sgrep 2>&1 | grep ^Usage:
|
|
|
|
runHook postInstallCheck
|
|
'';
|
|
|
|
doInstallCheck = true;
|
|
|
|
meta = with lib; {
|
|
homepage = "https://sgrep.sourceforge.net/";
|
|
description = "Sgrep (sorted grep) searches sorted input files for lines that match a search key";
|
|
longDescription = ''
|
|
Sgrep (sorted grep) searches sorted input files for lines that match a search
|
|
key and outputs the matching lines. When searching large files sgrep is much
|
|
faster than traditional Unix grep, but with significant restrictions.
|
|
'';
|
|
platforms = platforms.unix;
|
|
license = licenses.gpl3Plus;
|
|
maintainers = with maintainers; [ ivan ];
|
|
};
|
|
}
|