adr-tools: init at 3.0.0 (#375637)
This commit is contained in:
@@ -0,0 +1,118 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
installShellFiles,
|
||||
makeWrapper,
|
||||
nix-update-script,
|
||||
|
||||
bash,
|
||||
bashInteractive,
|
||||
coreutils,
|
||||
findutils,
|
||||
gawk,
|
||||
getopt,
|
||||
gnugrep,
|
||||
gnused,
|
||||
|
||||
# tests
|
||||
adr-tools,
|
||||
runCommand,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "adr-tools";
|
||||
version = "3.0.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "npryce";
|
||||
repo = "adr-tools";
|
||||
tag = version;
|
||||
hash = "sha256-JEwLn+SY6XcaQ9VhN8ARQaZc1zolgAJKfIqPggzV+sU=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
installShellFiles
|
||||
makeWrapper
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
# need an interactive interpreter for compgen
|
||||
bashInteractive
|
||||
];
|
||||
|
||||
checkInputs = [ getopt ];
|
||||
|
||||
dontConfigure = true;
|
||||
dontBuild = true;
|
||||
doCheck = true;
|
||||
|
||||
# patch makefile and shebangs so checks can run
|
||||
patchPhase = ''
|
||||
substituteInPlace Makefile --replace-fail '/bin:/usr/bin' '$${HOST_PATH}'
|
||||
patchShebangs src/
|
||||
patchShebangs approve
|
||||
'';
|
||||
|
||||
checkPhase = ''
|
||||
make check
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin/ $out/libexec
|
||||
cp src/* $out/libexec
|
||||
|
||||
makeWrapper $out/libexec/adr $out/bin/adr --prefix PATH : ${
|
||||
lib.makeBinPath [
|
||||
coreutils
|
||||
findutils
|
||||
gawk
|
||||
getopt
|
||||
gnugrep
|
||||
gnused
|
||||
]
|
||||
}
|
||||
# avoid having two bash dependencies in output
|
||||
substituteInPlace $out/bin/adr --replace-fail "${lib.getExe bash}" "${lib.getExe bashInteractive}"
|
||||
|
||||
installShellCompletion --bash autocomplete/adr
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
tests.default = runCommand "adr-tools-test" { } ''
|
||||
set -euo pipefail
|
||||
export PATH=$PATH:${
|
||||
lib.makeBinPath [
|
||||
adr-tools
|
||||
gnugrep
|
||||
]
|
||||
}
|
||||
|
||||
mkdir $out
|
||||
cd $out
|
||||
|
||||
adr init
|
||||
test -e doc/adr/0001-record-architecture-decisions.md
|
||||
|
||||
EDITOR= adr new blah
|
||||
test -e doc/adr/0002-blah.md
|
||||
|
||||
adr generate toc | grep 0002-blah.md
|
||||
adr list | grep 0002-blah.md
|
||||
|
||||
adr link 2 Amends 1 "TESTED AMEND"
|
||||
grep 'TESTED AMEND' doc/adr/0001-record-architecture-decisions.md | grep 0002-blah.md
|
||||
'';
|
||||
|
||||
updateScript = nix-update-script { };
|
||||
};
|
||||
|
||||
meta = {
|
||||
description = "Command-line tools for working with Architecture Decision Records";
|
||||
homepage = "https://github.com/npryce/adr-tools";
|
||||
license = lib.licenses.gpl3Plus;
|
||||
maintainers = with lib.maintainers; [ adamcstephens ];
|
||||
mainProgram = "adr";
|
||||
platforms = lib.platforms.all;
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user