From 21ad24291d35d6199bd988d54fec846232a03e57 Mon Sep 17 00:00:00 2001 From: Ivan Kozik Date: Thu, 20 Oct 2022 03:06:49 +0000 Subject: [PATCH] sorted-grep: init at 1.0 This is https://sgrep.sourceforge.net/, which is quite useful for finding lines in very large sorted files. --- pkgs/tools/text/sorted-grep/default.nix | 56 +++++++++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 2 files changed, 58 insertions(+) create mode 100644 pkgs/tools/text/sorted-grep/default.nix diff --git a/pkgs/tools/text/sorted-grep/default.nix b/pkgs/tools/text/sorted-grep/default.nix new file mode 100644 index 000000000000..60bc0bee676f --- /dev/null +++ b/pkgs/tools/text/sorted-grep/default.nix @@ -0,0 +1,56 @@ +{ 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 ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 8e21d9b8cdd8..be05f3eda402 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -1395,6 +1395,8 @@ with pkgs; sgrep = callPackage ../tools/text/sgrep { }; + sorted-grep = callPackage ../tools/text/sorted-grep { }; + smbscan = callPackage ../tools/security/smbscan { }; spectre-cli = callPackage ../tools/security/spectre-cli { };