{
lib,
rustPlatform,
fetchFromGitHub,
versionCheckHook,
installShellFiles,
stdenv,
}:
rustPlatform.buildRustPackage rec {
pname = "rip2";
version = "0.9.0";
src = fetchFromGitHub {
owner = "MilesCranmer";
repo = "rip2";
rev = "v${version}";
hash = "sha256-9leLWfPilDQHzQRzTUjAFt9olTPEL4GcQgYFWZu3dug=";
};
cargoHash = "sha256-l6rbeiyIsr1csBcp+428TpQYSs9RvfJutGoL/wtSGR8=";
nativeBuildInputs = [ installShellFiles ];
# TODO: Unsure why this test fails, but not a major issue so
# skipping for now.
checkFlags = [ "--skip=test_filetypes::file_type_3___fifo__" ];
doInstallCheck = true;
nativeInstallCheckInputs = [ versionCheckHook ];
versionCheckProgram = "${placeholder "out"}/bin/rip";
postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
installShellCompletion --cmd rip \
--bash <($out/bin/rip completions bash) \
--fish <($out/bin/rip completions fish) \
--zsh <($out/bin/rip completions zsh)
'';
meta = {
description = "Safe and ergonomic alternative to rm";
homepage = "https://github.com/MilesCranmer/rip2";
license = lib.licenses.gpl3Plus;
maintainers = with lib.maintainers; [ milescranmer ];
mainProgram = "rip";
}