{ revision ? "dev", releaseName ? "dev", buildSystem ? builtins.currentSystem, pkgsNix ? (import ./nix/pkgs.nix), supportedSystems ? pkgsNix.supportedSystems, }: let pkgs = pkgsNix.default { inherit buildSystem; }; mkRelease = hostSystem: let build = ((import ./default.nix) { inherit buildSystem hostSystem releaseName revision; }).build; in pkgs.stdenv.mkDerivation { name = "isle-release-${hostSystem}"; inherit releaseName hostSystem; appImage = build.appImage; archPkg = build.archPkg; builder = builtins.toFile "build.sh" '' source $stdenv/setup mkdir -p "$out"/ cp "$appImage"/bin/isle "$out"/isle-$releaseName-$hostSystem.AppImage cp "$archPkg"/*.tar.zst "$out"/isle-$releaseName-$hostSystem.pkg.tar.zst ''; }; releases = builtins.map mkRelease supportedSystems; in pkgs.stdenv.mkDerivation { name = "isle-release-${releaseName}"; inherit releases; nativeBuildInputs = [ pkgs.coreutils ]; builder = builtins.toFile "build.sh" '' source $stdenv/setup mkdir -p "$out" for p in $releases; do cp "$p"/* "$out"/ done (cd "$out" && sha256sum * > sha256.txt) ''; }