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 =
|
|
|
|
|
''
|
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
|
|
|
}
|