about summary refs log tree commit diff
path: root/pkgs/games
diff options
context:
space:
mode:
authoraszlig <aszlig@nix.build>2018-09-22 05:09:03 +0200
committeraszlig <aszlig@nix.build>2018-09-22 05:27:23 +0200
commit7f01ff7eae4e75d80d327bc2887821f36ea83f44 (patch)
tree2abe1d7aae7d29f12c0aebc25c771907be5ceb6a /pkgs/games
parent21762297a4072b5a25f2d528d5839633fa396133 (diff)
games/gog: Add CrossCode
Packaging is pretty straightforward because the game is written in JS,
so only the assets need to be copied along with wrapper for NW.js
pointing to the directory and we're done.

Signed-off-by: aszlig <aszlig@nix.build>
Cc: @Profpatsch
Diffstat (limited to 'pkgs/games')
-rw-r--r--pkgs/games/gog/crosscode.nix29
-rw-r--r--pkgs/games/gog/default.nix1
2 files changed, 30 insertions, 0 deletions
diff --git a/pkgs/games/gog/crosscode.nix b/pkgs/games/gog/crosscode.nix
new file mode 100644
index 00000000..dfee7f4b
--- /dev/null
+++ b/pkgs/games/gog/crosscode.nix
@@ -0,0 +1,29 @@
+{ lib, buildGame, fetchGog, makeWrapper, nwjs }:
+
+buildGame rec {
+  name = "crosscode-${version}";
+  version = "1.0";
+
+  src = fetchGog {
+    productId = 1252295864;
+    downloadName = "en3installer0";
+    sha256 = "07gfnwiixnfz6a5rf7imcc97jsrpbpdc29azd5rdl6n4jqq2bc8n";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  buildPhase = ''
+    substituteInPlace package.json --replace assets/ ""
+  '';
+
+  installPhase = ''
+    mkdir -p "$out/share" "$out/bin"
+    cp -r assets "$out/share/crosscode"
+    install -vD -m 0644 package.json "$out/share/crosscode/package.json"
+
+    makeWrapper ${lib.escapeShellArg "${nwjs}/bin/nw"} "$out/bin/crosscode" \
+      --run "cd '$out/share/crosscode'" --add-flags .
+  '';
+
+  sandbox.paths.required = [ "$XDG_CONFIG_HOME/CrossCode" ];
+}
diff --git a/pkgs/games/gog/default.nix b/pkgs/games/gog/default.nix
index e750ce7b..964fd054 100644
--- a/pkgs/games/gog/default.nix
+++ b/pkgs/games/gog/default.nix
@@ -12,6 +12,7 @@ let
     };
 
     albion = callPackage_i686 ./albion {};
+    crosscode = callPackage ./crosscode.nix {};
     dungeons3 = callPackage ./dungeons3.nix {};
     overload = callPackage ./overload.nix {};
     party-hard = callPackage ./party-hard.nix {};