39 lines
913 B
Nix
39 lines
913 B
Nix
{ lib, fetchurl, stdenv, unzip, zip, jre_headless }:
|
|
|
|
let
|
|
lock = import ./lock.nix;
|
|
libraries = lib.forEach lock.libraries fetchurl;
|
|
in
|
|
stdenv.mkDerivation {
|
|
name = "fabric-server-launch.jar";
|
|
nativeBuildInputs = [ unzip zip jre_headless ];
|
|
|
|
libraries = libraries;
|
|
|
|
buildPhase = ''
|
|
for i in $libraries; do
|
|
unzip -o $i
|
|
done
|
|
|
|
cat > META-INF/MANIFEST.MF << EOF
|
|
Manifest-Version: 1.0
|
|
Main-Class: net.fabricmc.loader.impl.launch.server.FabricServerLauncher
|
|
Name: org/objectweb/asm/
|
|
Implementation-Version: 9.2
|
|
EOF
|
|
|
|
cat > fabric-server-launch.properties << EOF
|
|
launch.mainClass=net.fabricmc.loader.impl.launch.knot.KnotServer
|
|
EOF
|
|
'';
|
|
|
|
installPhase = ''
|
|
jar cmvf META-INF/MANIFEST.MF "server.jar" .
|
|
zip -d server.jar 'META-INF/*.SF' 'META-INF/*.RSA' 'META-INF/*.DSA'
|
|
cp server.jar "$out"
|
|
'';
|
|
|
|
phases = [ "buildPhase" "installPhase" ];
|
|
}
|
|
|