summary refs log tree commit diff
path: root/pkgs/games/keen4
diff options
context:
space:
mode:
authorSandro Jäckel <sandro.jaeckel@gmail.com>2021-11-20 00:48:42 +0100
committerSandro Jäckel <sandro.jaeckel@gmail.com>2021-11-20 00:48:42 +0100
commit046ac66948a7470bdc7bc1ac9317568718ecc266 (patch)
tree75d9d065c730e78302a944c053cac9b322887f46 /pkgs/games/keen4
parenta80d35d02aac773edaf9fced7c1309f9b620b0ab (diff)
downloadnixpkgs-046ac66948a7470bdc7bc1ac9317568718ecc266.tar
nixpkgs-046ac66948a7470bdc7bc1ac9317568718ecc266.tar.gz
nixpkgs-046ac66948a7470bdc7bc1ac9317568718ecc266.tar.bz2
nixpkgs-046ac66948a7470bdc7bc1ac9317568718ecc266.tar.lz
nixpkgs-046ac66948a7470bdc7bc1ac9317568718ecc266.tar.xz
nixpkgs-046ac66948a7470bdc7bc1ac9317568718ecc266.tar.zst
nixpkgs-046ac66948a7470bdc7bc1ac9317568718ecc266.zip
keen4: convert away from builder.sh
Diffstat (limited to 'pkgs/games/keen4')
-rw-r--r--pkgs/games/keen4/builder.sh36
-rw-r--r--pkgs/games/keen4/default.nix35
2 files changed, 32 insertions, 39 deletions
diff --git a/pkgs/games/keen4/builder.sh b/pkgs/games/keen4/builder.sh
deleted file mode 100644
index f39edc78999..00000000000
--- a/pkgs/games/keen4/builder.sh
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/usr/bin/env bash
-
-set -o nounset
-
-# shellcheck source=/dev/null
-source "${stdenv}/setup"
-
-mkdir -p "${out}/share/keen4"
-unzip -j "$dist" -d "${out}/share/keen4"
-
-mkdir -p "${out}/bin"
-cat > "${out}/bin/keen4" <<EOF
-#! $SHELL -e
-if test -z "\$HOME"; then
-    echo "HOME directory not set"
-    exit 1
-fi
-
-# Game wants to write in the current directory, but of course we can't
-# let it write in the Nix store.  So create symlinks to the game files
-# in ~/.keen4 and execute game from there.
-mkdir -p \$HOME/.keen4
-cd \$HOME/.keen4
-
-ln -sf "${out}/share/keen4/"* .
-
-"${dosbox}/bin/dosbox" ./KEEN4E.EXE -fullscreen -exit || true
-
-# Cleanup the symlinks.
-for i in *; do
-    if test -L "\$i"; then
-        rm "\$i"
-    fi
-done
-EOF
-chmod +x "${out}/bin/keen4"
diff --git a/pkgs/games/keen4/default.nix b/pkgs/games/keen4/default.nix
index 59bb30d627f..5e2468a8f9e 100644
--- a/pkgs/games/keen4/default.nix
+++ b/pkgs/games/keen4/default.nix
@@ -2,16 +2,45 @@
 
 stdenv.mkDerivation {
   name = "keen4";
-  builder = ./builder.sh;
 
-  dist = fetchurl {
+  src = fetchurl {
     url = "http://tarballs.nixos.org/keen4.zip";
     sha256 = "12rnc9ksl7v6l8wsxvr26ylkafzq80dbsa7yafzw9pqc8pafkhx1";
   };
 
   nativeBuildInputs = [ unzip ];
 
-  inherit dosbox;
+  installPhase = ''
+    mkdir -p $out/share/keen4
+    mv * $out/share/keen4
+
+    mkdir -p $out/bin
+    cat > $out/bin/keen4 <<EOF
+    #! $SHELL -e
+    if test -z "\$HOME"; then
+        echo "HOME directory not set"
+        exit 1
+    fi
+
+    # Game wants to write in the current directory, but of course we can't
+    # let it write in the Nix store.  So create symlinks to the game files
+    # in ~/.keen4 and execute game from there.
+    mkdir -p \$HOME/.keen4
+    cd \$HOME/.keen4
+
+    ln -sf $out/share/keen4/* .
+
+    ${dosbox}/bin/dosbox ./KEEN4E.EXE -fullscreen -exit || true
+
+    # Cleanup the symlinks.
+    for i in *; do
+        if test -L "\$i"; then
+            rm "\$i"
+        fi
+    done
+    EOF
+    chmod +x $out/bin/keen4
+  '';
 
   meta = {
     description = "Commander Keen Episode 4: Secret of the Oracle";