From 78c338cb10067c45d370709b4f9ec75bdd075328 Mon Sep 17 00:00:00 2001 From: AndersonTorres Date: Wed, 19 Jan 2022 18:30:06 -0300 Subject: [PATCH] npush: init at 0.7 Also, adding a helper run-npush that takes care of preparing the game to run with the official levelset. --- pkgs/games/npush/default.nix | 47 +++++++++++++++++++++++++++++++++ pkgs/games/npush/run.nix | 31 ++++++++++++++++++++++ pkgs/top-level/all-packages.nix | 3 +++ 3 files changed, 81 insertions(+) create mode 100644 pkgs/games/npush/default.nix create mode 100644 pkgs/games/npush/run.nix 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 + ]; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 7c37f80b8f15..8dbc6111132a 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -30902,6 +30902,9 @@ with pkgs; njam = callPackage ../games/njam { }; + npush = callPackage ../games/npush { }; + run-npush = callPackage ../games/npush/run.nix { }; + newtonwars = callPackage ../games/newtonwars { }; nudoku = callPackage ../games/nudoku { };