about summary refs log tree commit diff
path: root/pkgs/games/npush
diff options
context:
space:
mode:
authorAndersonTorres <torres.anderson.85@protonmail.com>2022-01-19 18:30:06 -0300
committerAndersonTorres <torres.anderson.85@protonmail.com>2022-01-21 16:47:48 -0300
commit78c338cb10067c45d370709b4f9ec75bdd075328 (patch)
treec57208a0eec2b00c45fa1762940b1d238c5e041b /pkgs/games/npush
parent3fe54cd39ea8eefaf623f060bafdd24d2a7d8bb2 (diff)
downloadnixlib-78c338cb10067c45d370709b4f9ec75bdd075328.tar
nixlib-78c338cb10067c45d370709b4f9ec75bdd075328.tar.gz
nixlib-78c338cb10067c45d370709b4f9ec75bdd075328.tar.bz2
nixlib-78c338cb10067c45d370709b4f9ec75bdd075328.tar.lz
nixlib-78c338cb10067c45d370709b4f9ec75bdd075328.tar.xz
nixlib-78c338cb10067c45d370709b4f9ec75bdd075328.tar.zst
nixlib-78c338cb10067c45d370709b4f9ec75bdd075328.zip
npush: init at 0.7
Also, adding a helper run-npush that takes care of preparing the game to run
with the official levelset.
Diffstat (limited to 'pkgs/games/npush')
-rw-r--r--pkgs/games/npush/default.nix47
-rw-r--r--pkgs/games/npush/run.nix31
2 files changed, 78 insertions, 0 deletions
diff --git a/pkgs/games/npush/default.nix b/pkgs/games/npush/default.nix
new file mode 100644
index 000000000000..d4124557f6e6
--- /dev/null
+++ b/pkgs/games/npush/default.nix
@@ -0,0 +1,47 @@
+{ lib
+, stdenv
+, fetchurl
+, ncurses
+}:
+
+stdenv.mkDerivation rec {
+  pname = "npush";
+  version = "0.7";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/project/npush/${pname}/${version}/${pname}-${version}.tgz";
+    hash = "sha256-8hbSsyeehzd4T3fUhDyebyI/oTHOHr3a8ArYAquivNk=";
+  };
+
+  outputs = [ "out" "doc" ];
+
+  buildInputs = [
+    ncurses
+  ];
+
+  dontConfigure = true;
+
+  makeFlags = [
+    "CC=${stdenv.cc.targetPrefix}c++"
+  ];
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/bin $out/share/npush/levels $doc/share/doc/npush
+    cp npush $out/bin/
+    cp levels/* $out/share/npush/levels
+    cp CHANGES COPYING CREDITS index.html \
+       readme.txt screenshot1.png screenshot2.png $doc/share/doc/npush/
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "http://npush.sourceforge.net/";
+    description = "A Sokoban-like game";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ AndersonTorres ];
+    platforms = with platforms; unix;
+  };
+}
diff --git a/pkgs/games/npush/run.nix b/pkgs/games/npush/run.nix
new file mode 100644
index 000000000000..bc4a3b5fda3f
--- /dev/null
+++ b/pkgs/games/npush/run.nix
@@ -0,0 +1,31 @@
+{ runtimeShell
+, symlinkJoin
+, writeShellScriptBin
+, npush
+}:
+
+let
+  runScript = writeShellScriptBin "run-npush" ''
+    set -euo pipefail
+    CWD=$(pwd)
+
+    if [ -d "./levels" ]; then
+      echo "Directory ./levels found; skipping levelset copy"
+    else
+      echo "Directory ./levels not found; copying the official levelset to the current directory"
+      mkdir -p ./levels
+      cp ${npush}/share/npush/levels/* levels/
+      chmod 644 levels/*
+    fi
+    echo "Now calling npush"
+    exec "${npush}/bin/npush"
+  '';
+in
+symlinkJoin {
+  name = "run-npush-${npush.version}";
+
+  paths = [
+    npush
+    runScript
+  ];
+}