2025-05-13 19:44:53 +08:00

19 lines
616 B
Bash

#!/bin/sh
# jq filter to check that the wit-manifest contins a given commit (\1) and package (\2)
filter='.[]|select(.commit == "\1")|select(.name == "\2")'
# only check that all submodules have a corresponding wit package
# the wit-manifest.json may have packages that are not submoduled
# e.g. api-chisel3-sifive
git submodule status \
| sed -r "s/[ -+U]([a-zA-Z0-9]+) ([a-zA-Z0-9\-]+) ?.*/$filter/g" \
| xargs -d '\n' -I % sh -c "jq -e '%' wit-manifest.json"
if [ $? -eq 0 ]; then
echo "Submodules are in sync with wit-manifest"
else
echo "ERROR! Submodules are out of sync with wit-manifest!"
exit 1
fi