isle/release.nix
2023-03-25 15:58:20 +01:00

51 lines
1.1 KiB
Nix

{
releaseName,
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;
}).appImage;
in pkgs.stdenv.mkDerivation {
name = "cryptic-net-release-${hostSystem}";
inherit releaseName appImage hostSystem;
builder = builtins.toFile "build.sh" ''
source $stdenv/setup
mkdir -p "$out"/
cp "$appImage"/bin/cryptic-net "$out"/cryptic-net-$releaseName-$hostSystem
'';
};
releases = builtins.map mkRelease supportedSystems;
in
pkgs.stdenv.mkDerivation {
name = "cryptic-net-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"/cryptic-net-* "$out"/
done
(cd "$out" && sha256sum * > sha256.txt)
'';
}