{ nixpkgs, ... }: let lib = nixpkgs.lib; eachSystem = fn: lib.genAttrs lib.systems.flakeExposed (system: fn (import nixpkgs { inherit system; })); mkModpack = builder: let mkPackages = pkgs: let bootstrap = pkgs.fetchurl { url = "https://github.com/packwiz/packwiz-installer-bootstrap/releases/download/v0.0.3/packwiz-installer-bootstrap.jar"; sha256 = "qPuyTcYEJ46X9GiOgtPZGjGLmO/AjV2/y8vKtkQ9EWw="; }; buildInfo = builder pkgs.system; in lib.trace buildInfo { server = pkgs.writeShellScriptBin "minecraft-server" '' ${lib.getExe pkgs.jre} -jar ${bootstrap} -g -s server ${buildInfo.packUrl} # ${buildInfo.server}/bin/minecraft-server ''; }; overlay = final: prev: mkPackages prev; in { inherit overlay; packages = eachSystem mkPackages; devShells = eachSystem (pkgs: { default = pkgs.mkShell { buildInputs = with pkgs; [ packwiz ]; }; }); }; in mkModpack