summary refs log tree commit diff
path: root/pkgs/development/compilers/inklecate/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/compilers/inklecate/default.nix')
-rw-r--r--pkgs/development/compilers/inklecate/default.nix54
1 files changed, 54 insertions, 0 deletions
diff --git a/pkgs/development/compilers/inklecate/default.nix b/pkgs/development/compilers/inklecate/default.nix
new file mode 100644
index 00000000000..6ed01d9bbcf
--- /dev/null
+++ b/pkgs/development/compilers/inklecate/default.nix
@@ -0,0 +1,54 @@
+{ lib, stdenv, fetchurl, unzip, makeWrapper }:
+
+stdenv.mkDerivation rec {
+  pname = "inklecate";
+  version = "1.0.0";
+
+  src =
+    if stdenv.isLinux then
+      fetchurl {
+        url    = "https://github.com/inkle/ink/releases/download/v${version}/inklecate_linux.zip";
+        sha256 = "6e17db766222998ba0ae5a5da9857e34896e683b9ec42fad528c3f8bea7398ea";
+        name   = "${pname}-${version}";
+      }
+    else if stdenv.isDarwin then
+      fetchurl {
+        url    = "https://github.com/inkle/ink/releases/download/v${version}/inklecate_mac.zip";
+        sha256 = "b6f4dd1f95c180637ce193dbb5fa6d59aeafe49a2121a05b7822e6cbbaa6931f";
+        name   = "${pname}-${version}";
+      }
+    else throw "Not supported on ${stdenv.hostPlatform.system}.";
+
+  # Work around the "unpacker appears to have produced no directories"
+  # case that happens when the archive doesn't have a subdirectory.
+  setSourceRoot = "sourceRoot=$(pwd)";
+
+  nativeBuildInputs = [ unzip makeWrapper ];
+
+  unpackPhase = ''
+    unzip -qq -j $src -d $pname-$version
+
+    rm $pname-$version/ink-engine-runtime.dll
+    rm $pname-$version/ink_compiler.dll
+  '';
+
+  installPhase = ''
+    mkdir -p $out/bin/
+
+    cp $pname-$version/inklecate $out/bin/inklecate
+  '';
+
+
+  meta = with lib; {
+    description     = "Compiler for ink, inkle's scripting language";
+    longDescription = ''
+      Inklecate is a command-line compiler for ink, inkle's open source
+      scripting language for writing interactive narrative
+      '';
+    homepage        = "https://www.inklestudios.com/ink/";
+    downloadPage    = "https://github.com/inkle/ink/releases";
+    license         = licenses.mit;
+    platforms       = platforms.unix;
+    maintainers     = with maintainers; [ shreerammodi ];
+  };
+}