#!/usr/bin/env nix-shell
#! nix-shell -p curl jq -i sh
set -e

# Build our new sources.json
curl -s 'https://ziglang.org/download/index.json' | jq '
["aarch64-linux", "x86_64-linux", "aarch64-macos", "x86_64-macos"] as $targets |
def todarwin(x): x | gsub("macos"; "darwin");
def toentry(vsn; x):
  [(vsn as $version |
    .value |
    to_entries[] |
    select(.key as $key | any($targets[]; . == $key)) | {
      (todarwin(.key)): {
          "url": .value.tarball,
          "sha256": .value.shasum,
          "version": $version,
      }
    }
  )] | add;

to_entries[] | {
    (.key): (
        if (.key != "master") then
          toentry(.key; .value)
        else {
          "latest": toentry(.value.version; .value),
          (.value.date): toentry(.value.version; .value),
        } end
    )
}
' > sources.new.json

# For debugging
# cat sources.new.json
# exit

# Copy the old file since jq can't modify in-place. This is also a backup.
cp sources.json sources.old.json

# Recursive merge
jq -s '.[0] * .[1]' sources.old.json sources.new.json > sources.json