about summary refs log tree commit diff
path: root/nixpkgs/pkgs/games/keen4
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2019-01-07 02:18:36 +0000
committerAlyssa Ross <hi@alyssa.is>2019-01-07 02:18:47 +0000
commit36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2 (patch)
treeb3faaf573407b32aa645237a4d16b82778a39a92 /nixpkgs/pkgs/games/keen4
parent4e31070265257dc67d120c27e0f75c2344fdfa9a (diff)
parentabf060725d7614bd3b9f96764262dfbc2f9c2199 (diff)
downloadnixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar
nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.gz
nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.bz2
nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.lz
nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.xz
nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.zst
nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.zip
Add 'nixpkgs/' from commit 'abf060725d7614bd3b9f96764262dfbc2f9c2199'
git-subtree-dir: nixpkgs
git-subtree-mainline: 4e31070265257dc67d120c27e0f75c2344fdfa9a
git-subtree-split: abf060725d7614bd3b9f96764262dfbc2f9c2199
Diffstat (limited to 'nixpkgs/pkgs/games/keen4')
-rw-r--r--nixpkgs/pkgs/games/keen4/builder.sh31
-rw-r--r--nixpkgs/pkgs/games/keen4/default.nix21
2 files changed, 52 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/games/keen4/builder.sh b/nixpkgs/pkgs/games/keen4/builder.sh
new file mode 100644
index 000000000000..50d261db8651
--- /dev/null
+++ b/nixpkgs/pkgs/games/keen4/builder.sh
@@ -0,0 +1,31 @@
+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
\ No newline at end of file
diff --git a/nixpkgs/pkgs/games/keen4/default.nix b/nixpkgs/pkgs/games/keen4/default.nix
new file mode 100644
index 000000000000..64522e568db6
--- /dev/null
+++ b/nixpkgs/pkgs/games/keen4/default.nix
@@ -0,0 +1,21 @@
+{ lib, stdenv, fetchurl, dosbox, unzip }:
+
+stdenv.mkDerivation {
+  name = "keen4";
+  builder = ./builder.sh;
+
+  dist = fetchurl {
+    url = http://tarballs.nixos.org/keen4.zip;
+    sha256 = "12rnc9ksl7v6l8wsxvr26ylkafzq80dbsa7yafzw9pqc8pafkhx1";
+  };
+
+  buildInputs = [unzip];
+
+  inherit dosbox;
+
+  meta = {
+    description = "Commander Keen Episode 4: Secret of the Oracle";
+    license = lib.licenses.unfree;
+    maintainers = [ lib.maintainers.eelco ];
+  };
+}