diff options
Diffstat (limited to 'nixpkgs/pkgs/development/tools/misc/patsh/default.nix')
-rw-r--r-- | nixpkgs/pkgs/development/tools/misc/patsh/default.nix | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/tools/misc/patsh/default.nix b/nixpkgs/pkgs/development/tools/misc/patsh/default.nix new file mode 100644 index 000000000000..9fabbf789db9 --- /dev/null +++ b/nixpkgs/pkgs/development/tools/misc/patsh/default.nix @@ -0,0 +1,51 @@ +{ lib +, runCommand +, rustPlatform +, fetchFromGitHub +, stdenv +, coreutils +}: + +let + # copied from flake.nix + # tests require extra setup with nix + custom = runCommand "custom" { } '' + mkdir -p $out/bin + touch $out/bin/{'foo$','foo"`'} + chmod +x $out/bin/{'foo$','foo"`'} + ''; +in + +rustPlatform.buildRustPackage rec { + pname = "patsh"; + version = "0.2.1"; + + src = fetchFromGitHub { + owner = "nix-community"; + repo = "patsh"; + rev = "v${version}"; + sha256 = "sha256-d2Br4RAlKO7Bpse8sFbIDCIYd2fYvby0ar9oIbQS2jc="; + }; + + cargoHash = "sha256-hAWMm3YjwTB8ajn3QeXEOJYmPzbbitdwyO4k/IyhlOI="; + + nativeCheckInputs = [ custom ]; + + # see comment on `custom` + postPatch = '' + for file in tests/fixtures/*-expected.sh; do + substituteInPlace $file \ + --subst-var-by cc ${stdenv.cc} \ + --subst-var-by coreutils ${coreutils} \ + --subst-var-by custom ${custom} + done + ''; + + meta = with lib; { + description = "A command-line tool for patching shell scripts inspired by resholve"; + homepage = "https://github.com/nix-community/patsh"; + changelog = "https://github.com/nix-community/patsh/blob/v${version}/CHANGELOG.md"; + license = licenses.mpl20; + maintainers = with maintainers; [ figsoda ]; + }; +} |