bombsquad: init at 1.7.34

This commit is contained in:
Syed Ahkam 2024-05-15 22:03:22 +05:30
parent 59478e8119
commit 022ab91f56

@ -0,0 +1,114 @@
{
lib,
stdenv,
targetPlatform,
fetchurl,
python312,
SDL2,
libvorbis,
openal,
curl,
gnugrep,
libgcc,
makeWrapper,
makeDesktopItem,
autoPatchelfHook,
copyDesktopItems,
writeShellApplication,
commandLineArgs ? "",
}:
let
archive =
{
x86_64-linux = {
name = "BombSquad_Linux_x86_64";
hash = "sha256-VLNO0TxI/KBj8RkpGjo9Rx40f7fuV3pK2kIoKff9sRU=";
};
aarch-64-linux = {
name = "BombSquad_Linux_Arm64";
hash = "sha256-w42qhioZ9JRm004WEKzsJ3G1u09tLuPvTy8qV3DuglI=";
};
}
.${targetPlatform.system} or (throw "${targetPlatform.system} is unsupported.");
in
stdenv.mkDerivation (finalAttrs: {
name = "bombsquad";
version = "1.7.34";
sourceRoot = ".";
src = fetchurl {
url = "https://files.ballistica.net/bombsquad/builds/${archive.name}_${finalAttrs.version}.tar.gz";
inherit (archive) hash;
};
bombsquadIcon = fetchurl {
url = "https://files.ballistica.net/bombsquad/promo/BombSquadIcon.png";
hash = "sha256-MfOvjVmjhLejrJmdLo/goAM9DTGubnYGhlN6uF2GugA=";
};
nativeBuildInputs = [
python312
SDL2
libvorbis
openal
libgcc
makeWrapper
autoPatchelfHook
copyDesktopItems
];
desktopItems = [
(makeDesktopItem {
name = "bombsquad";
genericName = "bombsquad";
desktopName = "BombSquad";
icon = "bombsquad";
exec = "bombsquad";
comment = "An explosive arcade-style party game.";
categories = [ "Game" ];
})
];
installPhase = ''
runHook preInstall
base=${archive.name}_${finalAttrs.version}
install -m755 -D $base/bombsquad $out/bin/bombsquad
install -dm755 $base/ba_data $out/usr/share/bombsquad/ba_data
cp -r $base/ba_data $out/usr/share/bombsquad/
wrapProgram "$out/bin/bombsquad" \
--add-flags ${lib.escapeShellArg commandLineArgs} \
--add-flags "-d $out/usr/share/bombsquad"
install -Dm755 ${finalAttrs.bombsquadIcon} $out/usr/share/icons/hicolor/32x32/apps/bombsquad.png
runHook postInstall
'';
passthru.updateScript = 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 = "A 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 ];
mainProgram = "bombsquad";
platforms = lib.platforms.linux;
};
})