nixpkgs/pkgs/by-name/ap/apery/package.nix
2025-04-28 16:39:52 +09:00

57 lines
1.3 KiB
Nix

{
lib,
rustPlatform,
fetchFromGitHub,
unstableGitUpdater,
}:
rustPlatform.buildRustPackage {
pname = "apery";
version = "2.1.0-unstable-2024-06-23";
src = fetchFromGitHub {
owner = "HiraokaTakuya";
# Successor of C++ implementation
# https://github.com/HiraokaTakuya/apery/blob/d14471fc879062bfabbd181eaa91e90c7cc28a71/Readme.txt#L3-L4
repo = "apery_rust";
rev = "8e64bc427bff033a38f1b60b9013ad2d62f88db7";
hash = "sha256-Y8IBZISutXNgbuc7/qhNoiwYDCP6M9ukhu48t3oZM18=";
# The submodule includes evaluation files for the installCheckPhase
fetchSubmodules = true;
};
cargoHash = "sha256-xaQ83WKXKSAFRSKzaTFnM2lklGLCJG+i7wa8a+KNR/I=";
checkFlags = [
"--skip=movegen"
];
doInstallCheck = true;
installCheckPhase = ''
runHook preInstallCheck
usi_command='isready
go byoyomi 1000
wait'
usi_output="$("$out/bin/apery" <<< "$usi_command")"
[[ "$usi_output" == *'bestmove'* ]]
runHook postInstallCheck
'';
passthru.updateScript = unstableGitUpdater {
tagPrefix = "v";
branch = "master";
};
meta = {
description = "USI shogi engine";
homepage = "https://github.com/HiraokaTakuya/apery_rust";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [
kachick
];
mainProgram = "apery";
};
}