nixpkgs/pkgs/tools/text/esh/default.nix
Travis A. Everett 8f413d8a44 binlore: migrate override lore to package passthru
Lore overrides have been included with binlore's source up to now, but
this hasn't worked very well. (It isn't as easy to self-service for
people working in nixpkgs, and its use of partial pnames for matching
breaks down around some edge cases like version numbers appearing
early in perl pnames, or multiple packages having identical pnames.)
2024-07-04 11:15:05 -05:00

50 lines
1.3 KiB
Nix

{ lib, stdenv, fetchFromGitHub, asciidoctor, gawk, gnused, runtimeShell, binlore, esh }:
stdenv.mkDerivation rec {
pname = "esh";
version = "0.1.1";
src = fetchFromGitHub {
owner = "jirutka";
repo = "esh";
rev = "v${version}";
sha256 = "1ddaji5nplf1dyvgkrhqjy8m5djaycqcfhjv30yprj1avjymlj6w";
};
nativeBuildInputs = [ asciidoctor ];
buildInputs = [ gawk gnused ];
makeFlags = [ "prefix=$(out)" "DESTDIR=" ];
postPatch = ''
patchShebangs .
substituteInPlace esh \
--replace '"/bin/sh"' '"${runtimeShell}"' \
--replace '"awk"' '"${gawk}/bin/awk"' \
--replace 'sed' '${gnused}/bin/sed'
substituteInPlace tests/test-dump.exp \
--replace '#!/bin/sh' '#!${runtimeShell}'
'';
doCheck = true;
checkTarget = "test";
# working around a bug in file. Was fixed in
# file 5.41-5.43 but regressed in 5.44+
# see https://bugs.astron.com/view.php?id=276
# "can" verdict because of `-s SHELL` arg
passthru.binlore.out = binlore.synthesize esh ''
execer can bin/esh
'';
meta = with lib; {
description = "Simple templating engine based on shell";
mainProgram = "esh";
homepage = "https://github.com/jirutka/esh";
license = licenses.mit;
maintainers = with maintainers; [ mnacamura ];
platforms = platforms.unix;
};
}