Files
nixpkgs/pkgs/by-name/gi/gitlogue/package.nix
2026-08-05 06:41:52 +08:00

71 lines
1.9 KiB
Nix

{
lib,
rustPlatform,
fetchFromGitHub,
pkg-config,
openssl,
libgit2,
libssh2,
versionCheckHook,
nix-update-script,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "gitlogue";
version = "0.10.0";
strictDeps = true;
__structuredAttrs = true;
src = fetchFromGitHub {
owner = "unhappychoice";
repo = "gitlogue";
tag = "v${finalAttrs.version}";
hash = "sha256-hmWp22UPcKRjLM6vNDkdWrgkvjO27Ys2xzkx/co8lrE=";
};
cargoHash = "sha256-PfITSo8iTQ1Y3wn/9PD4fsMGF0oRw1f1Xnhki4voqpM=";
nativeBuildInputs = [ pkg-config ];
buildInputs = [
openssl
libgit2
libssh2
];
checkFlags = lib.forEach [
# integration tests
"default_playback_fails_only_after_ui_startup_without_tty"
"default_playback_quits_cleanly_in_pseudo_tty"
"default_playback_with_invalid_theme_fails_before_ui_startup"
"diff_subcommand_reports_no_changes_for_clean_repo"
"diff_subcommand_with_invalid_theme_fails_before_ui_startup"
"diff_subcommand_with_staged_changes_fails_only_after_ui_startup_without_tty"
"diff_subcommand_with_staged_changes_quits_cleanly_in_pseudo_tty"
] (test: "--skip=${test}");
env = {
OPENSSL_NO_VENDOR = 1;
LIBGIT2_NO_VENDOR = 1;
LIBSSH2_SYS_USE_PKG_CONFIG = 1;
};
doInstallCheck = true;
nativeInstallCheckInputs = [ versionCheckHook ];
passthru.updateScript = nix-update-script { };
meta = {
description = "Cinematic Git commit replay tool for the terminal";
longDescription = ''
A cinematic Git commit replay tool for the terminal, turning your Git history into a living, animated story.
'';
homepage = "https://github.com/unhappychoice/gitlogue";
changelog = "https://github.com/unhappychoice/gitlogue/releases/tag/v${finalAttrs.version}";
license = lib.licenses.isc;
maintainers = with lib.maintainers; [ chillcicada ];
mainProgram = "gitlogue";
};
})