Files
vms/nix/cache.nix
T

50 lines
1.0 KiB
Nix
Raw Normal View History

2024-06-26 20:57:47 -05:00
{
2024-11-18 21:22:32 -06:00
writeShellApplication,
active,
distroFile,
2024-12-24 00:23:26 -06:00
buildGoModule,
lib,
2024-06-26 20:57:47 -05:00
2024-12-24 00:23:26 -06:00
go,
2024-11-18 21:22:32 -06:00
packer,
2024-06-26 20:57:47 -05:00
2024-11-18 21:22:32 -06:00
...
2024-06-26 20:57:47 -05:00
}:
let
2024-11-18 21:22:32 -06:00
inherit (builtins) concatStringsSep map;
2024-12-24 00:23:26 -06:00
bin = buildGoModule {
pname = "cache";
version = "0.0.0";
src = ./cache;
vendorHash = "sha256-Mtq6BIlBNxI28eoLPfayov5uUqC4gMK+4ib6VKjyAlU=";
#vendorHash = lib.fakeHash;
meta.mainProgram = "main";
};
2024-11-18 21:22:32 -06:00
in
writeShellApplication {
name = "cache-isos";
runtimeInputs = [
2024-12-24 00:23:26 -06:00
go
2024-11-18 21:22:32 -06:00
packer
];
text =
''
set -o pipefail
2024-12-24 00:23:26 -06:00
function list_isos {
2024-11-18 21:22:32 -06:00
''
+ (concatStringsSep "\n" (
map (d: ''
2024-12-24 00:23:26 -06:00
url=$(echo var.iso.url | packer console -var-file="${d}" -config-type=hcl2 sources/)
sha=$(echo var.iso.checksum | packer console -var-file="${d}" -config-type=hcl2 sources/)
distro=$(echo var.distro | packer console -var-file="${d}" -config-type=hcl2 sources/)
echo "$url" "$sha" "$distro"
'') (lib.unique (lib.map distroFile active))
))
+ ''
}
list_isos | ${lib.getExe bin}
'';
2024-06-26 20:57:47 -05:00
}