#! /usr/bin/env nu def main [] { update_metamod nix-update --flake --use-update-script sourcemod let sdks = open nix/sourcemod/hl2sdks.json | columns $sdks | each {|sdk| update_sdk $sdk} } def update_sdk [sdk: string] { print $"Updating ($sdk) SDK" # some sdks might have identical files at some point, so their hash can be the same # nix-update will replace all occurences of the hash, which might not be correct # so we put a unique dummy value in there to work around this open nix/sourcemod/hl2sdks.json | update ([$sdk, "sha256"] | into cell-path) $"($sdk)-placeholder" | save -f nix/sourcemod/hl2sdks.json nix-update --flake --use-update-script $"hl2sdk.($sdk)" nix build .#sourcemods.x86_64-linux.tf2 } def update_metamod [] { let html = http get https://www.metamodsource.net/downloads.php/?branch=stable let branch = $html | query web --query h3 | first | first | parse --regex "from (?P[0-9.]+) Branch" | get branch | first let build = $html | query web --as-table [Build] | get Build | first print $"Updating metamod-source to ($branch).0.($build)" nix-update --flake --version=$"($branch).0.($build)" metamod-source nom build .#metamods.x86_64-linux.tf2 }