{ releaseName, revision, buildSystem ? builtins.currentSystem, pkgsNix ? (import ./nix/pkgs.nix), supportedSystems ? pkgsNix.supportedSystems, }: let pkgs = pkgsNix.default { inherit buildSystem; }; mkRelease = hostSystem: let appImage = ((import ./default.nix) { inherit buildSystem hostSystem releaseName revision; }).appImage; in pkgs.stdenv.mkDerivation { name = "isle-release-${hostSystem}"; inherit releaseName appImage hostSystem; builder = builtins.toFile "build.sh" '' source $stdenv/setup mkdir -p "$out"/ cp "$appImage"/bin/isle "$out"/isle-$releaseName-$hostSystem ''; }; 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"/isle-* "$out"/ done (cd "$out" && sha256sum * > sha256.txt) ''; }