forked from Fediversity/Fediversity
47 lines
1,002 B
Ruby
Executable file
47 lines
1,002 B
Ruby
Executable file
#!/usr/bin/env nix-shell
|
|
#!nix-shell -p ruby -i ruby
|
|
# vim: ft=ruby
|
|
#
|
|
# Run this script to update the list of GCE images
|
|
#
|
|
require "json"
|
|
require "uri"
|
|
|
|
ENV['NIX_PATH'] = "nixpkgs=channel:nixpkgs-unstable"
|
|
|
|
def render_tf
|
|
url_map=JSON.load(`nix-instantiate --json --strict --eval ./url_map.nix`)
|
|
|
|
out = <<~HEADER
|
|
# DON'T EDIT, run $0 instead
|
|
variable "url_map" {
|
|
type = map(string)
|
|
|
|
default = {
|
|
HEADER
|
|
|
|
url_map.each_pair do |version, gs_url|
|
|
u = URI.parse(gs_url)
|
|
# convert the gs:// URL to HTTPS URL for Terraform to consume
|
|
#
|
|
# Eg: "gs://nixos-cloud-images/nixos-image-18.09-x86_64-linux.raw.tar.gz"
|
|
https_url = "https://#{u.host}.storage.googleapis.com#{u.path}"
|
|
|
|
out += " %- 8s = %s\n" % [ version.inspect, https_url.inspect]
|
|
end
|
|
|
|
out += <<~FOOTER
|
|
}
|
|
|
|
description = "A map of release series to actual releases"
|
|
}
|
|
FOOTER
|
|
end
|
|
|
|
url_map_tf = render_tf
|
|
|
|
open("url_map.tf", "w") do |f|
|
|
f.write(url_map_tf)
|
|
end
|
|
|
|
puts url_map_tf
|