evcc: 0.131.4 -> 0.131.5
[NixPkgs.git] / pkgs / by-name / pa / patsh / package.nix
blob476fe420a678fdb3ebfef638cc1a3e11fc8e6820
1 { lib
2 , runCommand
3 , rustPlatform
4 , fetchFromGitHub
5 , stdenv
6 , coreutils
7 }:
9 let
10   # copied from flake.nix
11   # tests require extra setup with nix
12   custom = runCommand "custom" { } ''
13     mkdir -p $out/bin
14     touch $out/bin/{'foo$','foo"`'}
15     chmod +x $out/bin/{'foo$','foo"`'}
16   '';
19 rustPlatform.buildRustPackage rec {
20   pname = "patsh";
21   version = "0.2.1";
23   src = fetchFromGitHub {
24     owner = "nix-community";
25     repo = "patsh";
26     rev = "v${version}";
27     sha256 = "sha256-d2Br4RAlKO7Bpse8sFbIDCIYd2fYvby0ar9oIbQS2jc=";
28   };
30   cargoHash = "sha256-hAWMm3YjwTB8ajn3QeXEOJYmPzbbitdwyO4k/IyhlOI=";
32   nativeCheckInputs = [ custom ];
34   # see comment on `custom`
35   postPatch = ''
36     for file in tests/fixtures/*-expected.sh; do
37       substituteInPlace $file \
38         --subst-var-by cc ${stdenv.cc} \
39         --subst-var-by coreutils ${coreutils} \
40         --subst-var-by custom ${custom}
41     done
42   '';
44   meta = with lib; {
45     description = "Command-line tool for patching shell scripts inspired by resholve";
46     mainProgram = "patsh";
47     homepage = "https://github.com/nix-community/patsh";
48     changelog = "https://github.com/nix-community/patsh/blob/v${version}/CHANGELOG.md";
49     license = licenses.mpl20;
50     maintainers = with maintainers; [ figsoda ];
51   };