From 92ef4547a654cbad32ee2f6488bd816717cbfe96 Mon Sep 17 00:00:00 2001 From: seth Date: Tue, 19 Sep 2023 00:31:11 -0400 Subject: feat!: (re)introduce mkMultiMCPack this is another **breaking** change which reimplements `mkMultiMCPack` with `fetchPackwizModpack` and does not bundle the mods with the base zip --- lib/mkMultiMCPack.nix | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 lib/mkMultiMCPack.nix (limited to 'lib/mkMultiMCPack.nix') diff --git a/lib/mkMultiMCPack.nix b/lib/mkMultiMCPack.nix new file mode 100644 index 0000000..0c28d6c --- /dev/null +++ b/lib/mkMultiMCPack.nix @@ -0,0 +1,55 @@ +{ + lib, + stdenvNoCC, + zip, + strip-nondeterminism, + packwiz-installer-bootstrap, +}: { + pname ? null, + version ? "", + src ? null, + extraFiles ? {}, + instanceCfg, + ... +} @ args: +stdenvNoCC.mkDerivation (finalAttrs: + { + pname = src.pname or pname; + version = src.version or version; + + dontUnpack = true; + dontConfig = true; + dontBuild = true; + + nativeBuildInputs = [zip]; + + installPhase = let + modpackFiles = + { + "packwiz-installer-bootstrap.jar" = packwiz-installer-bootstrap; + "instance.cfg" = instanceCfg; + } + // extraFiles; + in + '' + runHook preInstall + + mkdir -p $out + tmp="$(mktemp -d)" + '' + + (lib.concatLines ( + lib.mapAttrsToList + (name: file: '' + mkdir -p "$tmp"/"$(dirname ${name})" + cp -as ${file} "$tmp"/${name} + '') + modpackFiles + )) + + '' + cd "$tmp" + zip -r $out/${finalAttrs.pname}-${finalAttrs.version}.zip {*,.*} + + ${lib.getExe strip-nondeterminism} $out/${finalAttrs.pname}-${finalAttrs.version}.zip + ''; + } + // args) -- cgit v1.2.3