#!/usr/bin/env nix-shell #! nix-shell -p curl jq -i sh # 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