summary refs log tree commit diff
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
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
-rw-r--r--maintainers/maintainer-list.nix10
-rw-r--r--pkgs/tools/games/slipstream/default.nix49
-rw-r--r--pkgs/top-level/all-packages.nix4
3 files changed, 63 insertions, 0 deletions
diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix
index 930d1cd6d33..28c34b4d11f 100644
--- a/maintainers/maintainer-list.nix
+++ b/maintainers/maintainer-list.nix
@@ -10805,6 +10805,16 @@
       fingerprint = "8CE3 2906 516F C4D8 D373  308A E189 648A 55F5 9A9F";
     }];
   };
+  mib = {
+    name = "mib";
+    email = "mib@kanp.ai";
+    matrix = "@mib:kanp.ai";
+    github = "mibmo";
+    githubId = 87388017;
+    keys = [{
+      fingerprint = "AB0D C647 B2F7 86EB 045C 7EFE CF6E 67DE D6DC 1E3F";
+    }];
+  };
   mic92 = {
     email = "joerg@thalheim.io";
     matrix = "@mic92:nixos.dev";
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;
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index c798c7b5b55..078253a8772 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -1856,6 +1856,10 @@ with pkgs;
 
   sitespeed-io = callPackage ../tools/networking/sitespeed-io { };
 
+  slipstream = callPackage ../tools/games/slipstream {
+    jdk = jdk8;
+  };
+
   sorted-grep = callPackage ../tools/text/sorted-grep { };
 
   smb3-foundry = callPackage ../applications/misc/smb3-foundry { };