mechanicaldiff/default.nix
Sven van Heugten 057686a6b9
Fix changes sometimes disappearing entirely
```git-check-assertions
run test/mechanicaldiff.bats
assert_success

git checkout HEAD~ bin
run test/mechanicaldiff.bats
assert_failure
assert_output --partial "not ok 9 keeps matching change with an extra removed line"
assert_output --partial "not ok 10 keeps matching change with an extra added line"
```
2026-03-06 17:30:41 +01:00

63 lines
979 B
Nix

{
stdenv,
lib,
bats,
gitMinimal,
python3,
python3Packages,
shellcheck-minimal,
shfmt,
patchutils_0_4_2,
}:
let
fs = lib.fileset;
in
stdenv.mkDerivation {
pname = "mechanicaldiff";
version = "0.0.1";
src = fs.toSource {
root = ./.;
fileset = fs.unions [
./.editorconfig
./bin
./test
];
};
buildInputs = [ python3 ];
postPatch = ''
patchShebangs .
'';
doCheck = true;
nativeCheckInputs = [
(bats.withLibraries (p: [
p.bats-assert
p.bats-support
]))
gitMinimal
python3Packages.flake8
shellcheck-minimal
shfmt
patchutils_0_4_2
];
checkPhase = ''
runHook preCheck
flake8 bin/mechanicaldiff
shellcheck test/mechanicaldiff.bats
shfmt -d test/mechanicaldiff.bats
bats test
runHook postCheck
'';
installPhase = ''
mkdir -p $out/bin
cp $src/bin/mechanicaldiff $out/bin/mechanicaldiff
chmod +x $out/bin/mechanicaldiff
'';
}