summary refs log tree commit diff
path: root/pkgs/tools/games
diff options
context:
space:
mode:
authorPol Dellaiera <pol.dellaiera@protonmail.com>2023-07-24 12:03:29 +0200
committerGitHub <noreply@github.com>2023-07-24 12:03:29 +0200
commitc3eeee8304be14ad0105af91741281a0d3fa2c78 (patch)
tree93069f5955f505b078ae39c5ffbf543e9748e505 /pkgs/tools/games
parenta9472df46d6a40945c60b6abf33dc39334c305bd (diff)
parenta103593b3bb84fdfd5185eeb5efa27f51ae6116b (diff)
downloadnixpkgs-c3eeee8304be14ad0105af91741281a0d3fa2c78.tar
nixpkgs-c3eeee8304be14ad0105af91741281a0d3fa2c78.tar.gz
nixpkgs-c3eeee8304be14ad0105af91741281a0d3fa2c78.tar.bz2
nixpkgs-c3eeee8304be14ad0105af91741281a0d3fa2c78.tar.lz
nixpkgs-c3eeee8304be14ad0105af91741281a0d3fa2c78.tar.xz
nixpkgs-c3eeee8304be14ad0105af91741281a0d3fa2c78.tar.zst
nixpkgs-c3eeee8304be14ad0105af91741281a0d3fa2c78.zip
Merge pull request #237651 from mibmo/pkg/slipstream
slipstream: init at 1.9.1
Diffstat (limited to 'pkgs/tools/games')
-rw-r--r--pkgs/tools/games/slipstream/default.nix49
1 files changed, 49 insertions, 0 deletions
diff --git a/pkgs/tools/games/slipstream/default.nix b/pkgs/tools/games/slipstream/default.nix
new file mode 100644
index 00000000000..6a41cd6b52d
--- /dev/null
+++ b/pkgs/tools/games/slipstream/default.nix
@@ -0,0 +1,49 @@
+{ lib, fetchFromGitHub, stdenv, makeWrapper, buildMaven, maven, jdk }:
+let
+  mavenWithJdk = maven.override { inherit jdk; };
+in
+mavenWithJdk.buildMavenPackage rec {
+  pname = "slipstream";
+  version = "1.9.1";
+
+  src = fetchFromGitHub {
+    owner = "Vhati";
+    repo = "Slipstream-Mod-Manager";
+    rev = "v${version}";
+    hash = "sha256-F+o94Oh9qxVdfgwdmyOv+WZl1BjQuzhQWaVrAgScgIU=";
+  };
+
+  mvnHash = "sha256-oDtUitsfZPiDtyfzzw1yMNBCKyP6rHczKZT/SPPJYGE=";
+
+  nativeBuildInputs = [ mavenWithJdk makeWrapper ];
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/java
+    install -Dm644 target/ftl-mod-manager-${version}.jar $out/share/java
+    install -Dm644 target/modman.jar $out/share/java
+
+    # slipstream is very finniky about having specific
+    # folders at startup, so wrapper creates them for it.
+    # this is because slipstream expects to be started from
+    # archive it comes from, but we can't do that since
+    # we need the mods directory to be writable.
+    # see: https://github.com/Vhati/Slipstream-Mod-Manager/blob/85cad4ffbef8583d908b189204d7d22a26be43f8/src/main/java/net/vhati/modmanager/cli/SlipstreamCLI.java#L105
+    makeWrapper ${jdk}/bin/java $out/bin/${pname} \
+      --run '_dir="''${XDG_DATA_HOME:-$HOME/.local/share}/slipstream"' \
+      --run 'mkdir -p $_dir/{mods,backup}' \
+      --run 'cd $_dir' \
+      --append-flags "-jar $out/share/java/modman.jar"
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "A mod manager for FTL: Faster Than Light";
+    homepage = "https://github.com/Vhati/Slipstream-Mod-Manager";
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ mib ];
+    platforms = platforms.all;
+  };
+}