mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-01-25 06:13:54 +00:00
126 lines
3.0 KiB
Nix
126 lines
3.0 KiB
Nix
{
|
|
lib,
|
|
stdenv,
|
|
fetchurl,
|
|
python312,
|
|
SDL2,
|
|
libvorbis,
|
|
openal,
|
|
curl,
|
|
gnugrep,
|
|
libgcc,
|
|
makeBinaryWrapper,
|
|
makeDesktopItem,
|
|
autoPatchelfHook,
|
|
copyDesktopItems,
|
|
writeShellApplication,
|
|
commandLineArgs ? "",
|
|
genericUpdater,
|
|
}:
|
|
let
|
|
archive =
|
|
{
|
|
x86_64-linux = {
|
|
name = "BombSquad_Linux_x86_64";
|
|
hash = "sha256-ICjaNZSCUbslB5pELbI4e+1zXWrZzkCkv69jLRx4dr0=";
|
|
};
|
|
aarch-64-linux = {
|
|
name = "BombSquad_Linux_Arm64";
|
|
hash = "sha256-/m0SOQbHssk0CqZJPRLK9YKphup3dtMqkbWGzqcF0+g=";
|
|
};
|
|
}
|
|
.${stdenv.targetPlatform.system} or (throw "${stdenv.targetPlatform.system} is unsupported.");
|
|
|
|
bombsquadIcon = fetchurl {
|
|
url = "https://files.ballistica.net/bombsquad/promo/BombSquadIcon.png";
|
|
hash = "sha256-MfOvjVmjhLejrJmdLo/goAM9DTGubnYGhlN6uF2GugA=";
|
|
};
|
|
|
|
in
|
|
stdenv.mkDerivation (finalAttrs: {
|
|
pname = "bombsquad";
|
|
version = "1.7.37";
|
|
|
|
src = fetchurl {
|
|
url = "https://web.archive.org/web/20240825230506if_/https://files.ballistica.net/bombsquad/builds/${archive.name}_${finalAttrs.version}.tar.gz";
|
|
inherit (archive) hash;
|
|
};
|
|
|
|
sourceRoot = "${archive.name}_${finalAttrs.version}";
|
|
|
|
buildInputs = [
|
|
SDL2
|
|
libgcc
|
|
libvorbis
|
|
openal
|
|
python312
|
|
];
|
|
|
|
nativeBuildInputs = [
|
|
autoPatchelfHook
|
|
copyDesktopItems
|
|
makeBinaryWrapper
|
|
];
|
|
|
|
desktopItems = [
|
|
(makeDesktopItem {
|
|
name = "bombsquad";
|
|
genericName = "bombsquad";
|
|
desktopName = "BombSquad";
|
|
|
|
icon = "bombsquad";
|
|
exec = "bombsquad";
|
|
comment = "An explosive arcade-style party game.";
|
|
categories = [ "Game" ];
|
|
})
|
|
];
|
|
|
|
installPhase = ''
|
|
runHook preInstall
|
|
|
|
mkdir -p $out/bin $out/libexec $out/share/bombsquad/ba_data
|
|
|
|
install -Dm555 -t $out/libexec ${finalAttrs.meta.mainProgram}
|
|
cp -r ba_data $out/share/bombsquad
|
|
|
|
makeWrapper "$out/libexec/${finalAttrs.meta.mainProgram}" "$out/bin/${finalAttrs.meta.mainProgram}" \
|
|
--add-flags ${lib.escapeShellArg commandLineArgs} \
|
|
--add-flags "-d $out/share/bombsquad"
|
|
|
|
install -Dm755 ${bombsquadIcon} $out/share/icons/hicolor/1024x1024/apps/bombsquad.png
|
|
|
|
runHook postInstall
|
|
'';
|
|
|
|
passthru.updateScript = genericUpdater {
|
|
versionLister = lib.getExe (writeShellApplication {
|
|
name = "bombsquad-versionLister";
|
|
runtimeInputs = [
|
|
curl
|
|
gnugrep
|
|
];
|
|
text = ''
|
|
curl -sL "https://files.ballistica.net/bombsquad/builds/CHANGELOG.md" \
|
|
| grep -oP '^### \K\d+\.\d+\.\d+' \
|
|
| head -n 1
|
|
'';
|
|
});
|
|
};
|
|
|
|
meta = {
|
|
description = "Free, multiplayer, arcade-style game for up to eight players that combines elements of fighting games and first-person shooters (FPS)";
|
|
homepage = "https://ballistica.net";
|
|
changelog = "https://ballistica.net/downloads?display=changelog";
|
|
license = with lib.licenses; [
|
|
mit
|
|
unfree
|
|
];
|
|
maintainers = with lib.maintainers; [
|
|
syedahkam
|
|
coffeeispower
|
|
];
|
|
mainProgram = "bombsquad";
|
|
platforms = lib.platforms.linux;
|
|
};
|
|
})
|