diff --git a/pkgs/development/tools/rust/cargo-valgrind/default.nix b/pkgs/development/tools/rust/cargo-valgrind/default.nix new file mode 100644 index 00000000000..138fc060568 --- /dev/null +++ b/pkgs/development/tools/rust/cargo-valgrind/default.nix @@ -0,0 +1,42 @@ +{ stdenv +, rustPlatform +, fetchFromGitHub +, nix-update-script +, makeWrapper +, valgrind +}: + +rustPlatform.buildRustPackage rec { + pname = "cargo-valgrind"; + version = "1.3.0"; + + src = fetchFromGitHub { + owner = "jfrimmel"; + repo = "cargo-valgrind"; + # repo lacks the 1.3.0 tag + # https://github.com/jfrimmel/cargo-valgrind/issues/33 + rev = "d47dd810e3971d676cde5757df8b2e05ed563e41"; + sha256 = "163ch5bpwny1di758rpfib1ddqclxm48j0lmmv741ji3l4nqid32"; + }; + + cargoSha256 = "008s1y3pkn8613kp1gqf494fs93ix0nrwhrkqi5q9bim2mixgccb"; + + passthru = { + updateScript = nix-update-script { + attrPath = pname; + }; + }; + + nativeBuildInputs = [ makeWrapper ]; + + postInstall = '' + wrapProgram $out/bin/cargo-valgrind --prefix PATH : ${stdenv.lib.makeBinPath [ valgrind ]} + ''; + + meta = with stdenv.lib; { + description = ''Cargo subcommand "valgrind": runs valgrind and collects its output in a helpful manner''; + homepage = "https://github.com/jfrimmel/cargo-valgrind"; + license = with licenses; [ asl20 /* or */ mit ]; + maintainers = with maintainers; [ otavio ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index bd3f5e27d31..bf367ccbea5 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -10740,6 +10740,7 @@ in cargo-udeps = callPackage ../development/tools/rust/cargo-udeps { inherit (darwin.apple_sdk.frameworks) CoreServices Security; }; + cargo-valgrind = callPackage ../development/tools/rust/cargo-valgrind { }; cargo-watch = callPackage ../development/tools/rust/cargo-watch { inherit (darwin.apple_sdk.frameworks) CoreServices; };