summary refs log tree commit diff
path: root/pkgs/games/dwarf-fortress/dfhack
diff options
context:
space:
mode:
authorMorgan Jones <me@numin.it>2018-07-12 08:42:52 +0000
committerMorgan Jones <me@numin.it>2018-09-09 06:59:41 +0000
commit4ada74e293212434114ac87a679c1432650f4b40 (patch)
tree19619cb5fe604ce10b885618cf17e8b3104e5128 /pkgs/games/dwarf-fortress/dfhack
parent9082a008d147c69538fedb045aacf34942ea1700 (diff)
downloadnixpkgs-4ada74e293212434114ac87a679c1432650f4b40.tar
nixpkgs-4ada74e293212434114ac87a679c1432650f4b40.tar.gz
nixpkgs-4ada74e293212434114ac87a679c1432650f4b40.tar.bz2
nixpkgs-4ada74e293212434114ac87a679c1432650f4b40.tar.lz
nixpkgs-4ada74e293212434114ac87a679c1432650f4b40.tar.xz
nixpkgs-4ada74e293212434114ac87a679c1432650f4b40.tar.zst
nixpkgs-4ada74e293212434114ac87a679c1432650f4b40.zip
dwarf-fortress: Support multiple unfuck/dfhack/TWBT versions
Diffstat (limited to 'pkgs/games/dwarf-fortress/dfhack')
-rw-r--r--pkgs/games/dwarf-fortress/dfhack/default.nix21
-rw-r--r--pkgs/games/dwarf-fortress/dfhack/dfhack.json38
2 files changed, 54 insertions, 5 deletions
diff --git a/pkgs/games/dwarf-fortress/dfhack/default.nix b/pkgs/games/dwarf-fortress/dfhack/default.nix
index 4a8c84cf92d..1c88cab0219 100644
--- a/pkgs/games/dwarf-fortress/dfhack/default.nix
+++ b/pkgs/games/dwarf-fortress/dfhack/default.nix
@@ -3,14 +3,25 @@
 , enableStoneSense ? false,  allegro5, libGLU_combined
 , enableTWBT ? true, twbt
 , SDL
+, dfVersion
 }:
 
+with lib;
+
 let
-  dfVersion = "0.44.12";
-  version = "${dfVersion}-r1";
+  dfhack-releases = builtins.fromJSON (builtins.readFile ./dfhack.json);
+
+  release = if hasAttr dfVersion dfhack-releases
+            then getAttr dfVersion dfhack-releases
+            else throw "[DFHack] Unsupported Dwarf Fortress version: ${dfVersion}";
+
+  version = release.dfHackRelease;
+
+  warning = if release.prerelease then builtins.trace "[DFHack] Version ${version} is a prerelease. Careful!"
+                                  else null;
 
   # revision of library/xml submodule
-  xmlRev = "23500e4e9bd1885365d0a2ef1746c321c1dd5094";
+  xmlRev = release.xmlRev;
 
   arch =
     if stdenv.hostPlatform.system == "x86_64-linux" then "64"
@@ -41,8 +52,8 @@ let
     src = fetchFromGitHub {
       owner = "DFHack";
       repo = "dfhack";
-      sha256 = "0j03lq6j6w378z6cvm7jspxc7hhrqm8jaszlq0mzfvap0k13fgyy";
-      rev = version;
+      rev = release.dfHackRelease;
+      sha256 = release.sha256;
       fetchSubmodules = true;
     };
 
diff --git a/pkgs/games/dwarf-fortress/dfhack/dfhack.json b/pkgs/games/dwarf-fortress/dfhack/dfhack.json
new file mode 100644
index 00000000000..d1907fb38af
--- /dev/null
+++ b/pkgs/games/dwarf-fortress/dfhack/dfhack.json
@@ -0,0 +1,38 @@
+{
+  "0.43.05": {
+    "dfHackRelease": "0.43.05-r3.1",
+    "sha256": "1ds366i0qcfbn62w9qv98lsqcrm38npzgvcr35hf6ihqa6nc6xrl",
+    "xmlRev": "860a9041a75305609643d465123a4b598140dd7f",
+    "prerelease": false
+  },
+  "0.44.05": {
+    "dfHackRelease": "0.44.05-r2",
+    "sha256": "1cwifdhi48a976xc472nf6q2k0ibwqffil5a4llcymcxdbgxdcc9",
+    "xmlRev": "2794f8a6d7405d4858bac486a0bb17b94740c142",
+    "prerelease": false
+  },
+  "0.44.09": {
+    "dfHackRelease": "0.44.09-r1",
+    "sha256": "1nkfaa43pisbyik5inj5q2hja2vza5lwidg5z02jyh136jm64hwk",
+    "xmlRev": "3c0bf63674d5430deadaf7befaec42f0ec1e8bc5",
+    "prerelease": false
+  },
+  "0.44.10": {
+    "dfHackRelease": "0.44.10-r2",
+    "sha256": "19bxsghxzw3bilhr8sm4axz7p7z8lrvbdsd1vdjf5zbg04rs866i",
+    "xmlRev": "321bd48b10c4c3f694cc801a7dee6be392c09b7b",
+    "prerelease": false
+  },
+  "0.44.11": {
+    "dfHackRelease": "0.44.11-beta2.1",
+    "sha256": "1jgwcqg9m1ybv3szgnklp6zfpiw5mswla464dlj2gfi5v82zqbv2",
+    "xmlRev": "f27ebae6aa8fb12c46217adec5a812cd49a905c8",
+    "prerelease": true
+  },
+  "0.44.12": {
+    "dfHackRelease": "0.44.12-r1",
+    "sha256": "0j03lq6j6w378z6cvm7jspxc7hhrqm8jaszlq0mzfvap0k13fgyy",
+    "xmlRev": "23500e4e9bd1885365d0a2ef1746c321c1dd5094",
+    "prerelease": false
+  }
+}