chromium,chromedriver: 129.0.6668.91 -> 129.0.6668.100
[NixPkgs.git] / pkgs / by-name / bo / bombsquad / package.nix
blob08b80d8b37b83b2b082e25fa41b5fe5c85fe76ed
2   lib,
3   stdenv,
4   targetPlatform,
5   fetchurl,
6   python312,
7   SDL2,
8   libvorbis,
9   openal,
10   curl,
11   gnugrep,
12   libgcc,
13   makeWrapper,
14   makeDesktopItem,
15   autoPatchelfHook,
16   copyDesktopItems,
17   writeShellApplication,
18   commandLineArgs ? "",
19   genericUpdater,
21 let
22   archive =
23     {
24       x86_64-linux = {
25         name = "BombSquad_Linux_x86_64";
26         hash = "sha256-jrExsqaM6uhnKMGPkJJTsKt2Imek+YDI2soSP/kfPj0=";
27       };
28       aarch-64-linux = {
29         name = "BombSquad_Linux_Arm64";
30         hash = "sha256-o1Yg0C5k07NZzc9jQrHXR+kkQl8HZ55U9/fqcpe3Iyw=";
31       };
32     }
33     .${targetPlatform.system} or (throw "${targetPlatform.system} is unsupported.");
35 stdenv.mkDerivation (finalAttrs: {
36   pname = "bombsquad";
37   version = "1.7.37";
38   sourceRoot = ".";
39   src = fetchurl {
40     url = "https://files.ballistica.net/bombsquad/builds/${archive.name}_${finalAttrs.version}.tar.gz";
41     inherit (archive) hash;
42   };
44   bombsquadIcon = fetchurl {
45     url = "https://files.ballistica.net/bombsquad/promo/BombSquadIcon.png";
46     hash = "sha256-MfOvjVmjhLejrJmdLo/goAM9DTGubnYGhlN6uF2GugA=";
47   };
49   nativeBuildInputs = [
50     python312
51     SDL2
52     libvorbis
53     openal
54     libgcc
55     makeWrapper
56     autoPatchelfHook
57     copyDesktopItems
58   ];
60   desktopItems = [
61     (makeDesktopItem {
62       name = "bombsquad";
63       genericName = "bombsquad";
64       desktopName = "BombSquad";
65       icon = "bombsquad";
66       exec = "bombsquad";
67       comment = "An explosive arcade-style party game.";
68       categories = [ "Game" ];
69     })
70   ];
72   installPhase = ''
73     runHook preInstall
75     base=${archive.name}_${finalAttrs.version}
77     install -m755 -D $base/bombsquad $out/bin/bombsquad
78     install -dm755 $base/ba_data $out/usr/share/bombsquad/ba_data
79     cp -r $base/ba_data $out/usr/share/bombsquad/
81     wrapProgram "$out/bin/bombsquad" \
82       --add-flags ${lib.escapeShellArg commandLineArgs} \
83       --add-flags "-d $out/usr/share/bombsquad"
85     install -Dm755 ${finalAttrs.bombsquadIcon} $out/usr/share/icons/hicolor/32x32/apps/bombsquad.png
87     runHook postInstall
88   '';
90   passthru.updateScript = genericUpdater {
91     versionLister = lib.getExe (writeShellApplication {
92       name = "bombsquad-versionLister";
93       runtimeInputs = [
94         curl
95         gnugrep
96       ];
97       text = ''
98         curl -sL "https://files.ballistica.net/bombsquad/builds/CHANGELOG.md" \
99             | grep -oP '^### \K\d+\.\d+\.\d+' \
100             | head -n 1
101       '';
102     });
103   };
105   meta = {
106     description = "Free, multiplayer, arcade-style game for up to eight players that combines elements of fighting games and first-person shooters (FPS)";
107     homepage = "https://ballistica.net";
108     changelog = "https://ballistica.net/downloads?display=changelog";
109     license = with lib.licenses; [
110       mit
111       unfree
112     ];
113     maintainers = with lib.maintainers; [
114       syedahkam
115       coffeeispower
116     ];
117     mainProgram = "bombsquad";
118     platforms = lib.platforms.linux;
119   };