Commit fe310a18 authored by Anderson Torres's avatar Anderson Torres
Browse files

zf: use zigHook

Also, a cosmetic refactor:

- Reorder parameter listing
- Use rec-less, overlay-style overridable recursive attributes (in effect since
NixOS#119942);
- Remove nested with (according to
https://nix.dev/recipes/best-practices#with-scopes)
parent a3ccdee0
Loading
Loading
Loading
Loading
+22 −37
Original line number Diff line number Diff line
{
  lib,
  stdenv,
  fetchFromGitHub,
  zig,
  testers,
  installShellFiles,
  zf,
{ lib
, stdenv
, fetchFromGitHub
, installShellFiles
, testers
, zf
, zigHook
}:
stdenv.mkDerivation rec {

stdenv.mkDerivation (finalAttrs: {
  pname = "zf";
  version = "0.8.0";

  src = fetchFromGitHub {
    owner = "natecraddock";
    repo = pname;
    rev = "refs/tags/${version}";
    repo = "zf";
    rev = "refs/tags/${finalAttrs.version}";
    fetchSubmodules = true;
    hash = "sha256-MzlSU5x2lb6PJZ/iNAi2aebfuClBprlfHMIG/4OPmuc=";
  };

  nativeBuildInputs = [ zig installShellFiles ];

  preBuild = ''
    export HOME=$TMPDIR
  '';

  buildPhase = ''
    runHook preBuild
    zig build -Drelease-safe -Dcpu=baseline
    runHook postBuild
  '';
  nativeBuildInputs = [
    installShellFiles
    zigHook
  ];

  doCheck = true;
  checkPhase = ''
    runHook preCheck
    zig build test
    runHook postCheck
  '';

  installPhase = ''
    runHook preInstall
    zig build -Drelease-safe -Dcpu=baseline --prefix $out install
  postInstall = ''
    installManPage doc/zf.1
    installShellCompletion \
      --bash complete/zf \
      --fish complete/zf.fish \
      --zsh complete/_zf
    runHook postInstall
  '';

  passthru.tests.version = testers.testVersion {package = zf;};
  passthru.tests.version = testers.testVersion { package = finalAttrs.zf; };

  meta = with lib; {
  meta = {
    homepage = "https://github.com/natecraddock/zf";
    description = "A commandline fuzzy finder that prioritizes matches on filenames";
    license = licenses.mit;
    platforms = platforms.unix;
    maintainers = with maintainers; [ dit7ya mmlb ];
    license = lib.licenses.mit;
    platforms = lib.platforms.unix;
    maintainers = with lib.maintainers; [ dit7ya mmlb ];
  };
}
})