{
lib,
rustPlatform,
fetchFromGitHub,
pkg-config,
libgit2,
openssl,
stdenv,
curl,
git,
nix-update-script,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "cargo-release";
version = "1.1.1";
src = fetchFromGitHub {
owner = "crate-ci";
repo = "cargo-release";
tag = "v${finalAttrs.version}";
hash = "sha256-+whbVQs2zaPrckR8CZYS35DHqCOv/B/4bv+fffu+onw=";
};
cargoHash = "sha256-jqs1b6edoR1OgileF0T9LNw1QtxALn3Nz+QUF3R8epg=";
nativeBuildInputs = [
pkg-config
];
buildInputs = [
libgit2
openssl
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
curl
];
nativeCheckInputs = [
git
];
# disable vendored-libgit2 and vendored-openssl
buildNoDefaultFeatures = true;
passthru.updateScript = nix-update-script { };
meta = {
description = ''Cargo subcommand "release": everything about releasing a rust crate'';
mainProgram = "cargo-release";
homepage = "https://github.com/crate-ci/cargo-release";
changelog = "https://github.com/crate-ci/cargo-release/blob/v${finalAttrs.version}/CHANGELOG.md";
license = with lib.licenses; [
asl20 # or
mit
];
maintainers = with lib.maintainers; [
gerschtli
progrm_jarvis
];
};
})