Fediversity/launch/.terraform/modules/peertube.deploy/google_image_nixos/update-url-map

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