anvil-editor: init at 0.4
[NixPkgs.git] / pkgs / games / quake2 / yquake2 / wrapper.nix
blobfafc1d3eaebd8d664cae1d296502e1a2ae23374e
1 { stdenv, lib, buildEnv, makeWrapper, yquake2, copyDesktopItems, makeDesktopItem }:
3 { games
4 , name
5 , description
6 }:
8 let
9   env = buildEnv {
10     name = "${name}-env";
11     paths = [ yquake2 ] ++ games;
12   };
15 stdenv.mkDerivation {
16   pname = name;
17   version = lib.getVersion yquake2;
19   nativeBuildInputs = [ makeWrapper copyDesktopItems ];
21   dontUnpack = true;
23   installPhase = ''
24     runHook preInstall
25     mkdir -p $out/bin
26   '' + lib.concatMapStringsSep "\n" (game: ''
27     makeWrapper ${env}/bin/yquake2 $out/bin/yquake2-${game.title} \
28       --add-flags "+set game ${game.id}"
29     makeWrapper ${env}/bin/yq2ded $out/bin/yq2ded-${game.title} \
30       --add-flags "+set game ${game.id}"
31   '') games + ''
32     install -Dm644 ${yquake2}/share/pixmaps/yamagi-quake2.png $out/share/pixmaps/yamagi-quake2.png;
33     runHook postInstall
34   '';
36   desktopItems = map
37     (game: makeDesktopItem ({
38       name = game.id;
39       exec = game.title;
40       icon = "yamagi-quake2";
41       desktopName = game.id;
42       comment = game.description;
43       categories = [ "Game" "Shooter" ];
44     }))
45     games;
47   meta = {
48     inherit description;
49   };