|
1 | | -variable "nixos_channel" { |
2 | | - type = string |
3 | | - # renovate: datasource=endoflife-date depName=NixOS versioning=nixpkgs |
4 | | - default = "25.05" |
| 1 | +locals { |
| 2 | + # renovate: datasource=custom.html depName=nixos versioning=regex:^(?<major>[0-9]+)\.(?<minor>[0-9]+)\.(?<patch>[0-9]+)\.[0-9a-f]+$ extractVersion=(^|/)nixos-minimal-(?<version>[^/]+)-x86_64-linux\.iso$ registryUrl=https://channels.nixos.org/nixos-25.05 |
| 3 | + nixos_build = "25.05.807900.fc756aa6f5d3" |
5 | 4 | } |
6 | 5 |
|
7 | | -data "http" "nixos_iso_checksum" { |
8 | | - url = "https://channels.nixos.org/nixos-${var.nixos_channel}/latest-nixos-minimal-x86_64-linux.iso.sha256" |
9 | | -} |
10 | | - |
11 | | -local "nixos_iso_checksum_split" { |
12 | | - expression = compact(split(" ", data.http.nixos_iso_checksum.body)) |
| 6 | +local "nixos_channel" { |
| 7 | + expression = regex("^[0-9]+\\.[0-9]+", local.nixos_build) |
13 | 8 | } |
14 | 9 |
|
15 | | -local "nixos_iso_checksum" { |
16 | | - expression = trimspace(local.nixos_iso_checksum_split[0]) |
| 10 | +local "nixos_iso_url" { |
| 11 | + expression = "https://releases.nixos.org/nixos/${local.nixos_channel}/nixos-${local.nixos_build}/nixos-minimal-${local.nixos_build}-x86_64-linux.iso" |
17 | 12 | } |
18 | 13 |
|
19 | | -local "nixos_iso_name" { |
20 | | - expression = trimspace(local.nixos_iso_checksum_split[1]) |
21 | | -} |
22 | | - |
23 | | -local "nixos_iso_dir" { |
24 | | - expression = regex_replace(local.nixos_iso_name, "nixos-minimal-(.*)-x86_64-linux.iso", "nixos-$1") |
| 14 | +# https://github.com/hashicorp/go-getter/issues/396 |
| 15 | +data "http" "nixos_iso_checksum" { |
| 16 | + url = "${local.nixos_iso_url}.sha256" |
25 | 17 | } |
26 | 18 |
|
27 | 19 | source "qemu" "nixos" { |
28 | | - iso_url = "https://releases.nixos.org/nixos/${var.nixos_channel}/${local.nixos_iso_dir}/${local.nixos_iso_name}" |
29 | | - iso_checksum = "sha256:${local.nixos_iso_checksum}" |
| 20 | + iso_url = "${local.nixos_iso_url}" |
| 21 | + iso_checksum = "sha256:${split(" ", data.http.nixos_iso_checksum.body)[0]}" |
30 | 22 | vga = "virtio" |
31 | 23 | cpus = 2 |
32 | 24 | memory = 4096 |
@@ -84,7 +76,7 @@ build { |
84 | 76 | } |
85 | 77 |
|
86 | 78 | provisioner "file" { |
87 | | - content = templatefile("${path.root}/nix/configuration.nix", { path = path, state_version = var.nixos_channel }) |
| 79 | + content = templatefile("${path.root}/nix/configuration.nix", { path = path, state_version = local.nixos_channel }) |
88 | 80 | destination = "/mnt/etc/nixos/configuration.nix" |
89 | 81 | } |
90 | 82 |
|
|
0 commit comments