76 lines
2.3 KiB
Bash
76 lines
2.3 KiB
Bash
if [[ -z "${UPDATE_NIX_ATTR_PATH:-}" ]]; then
|
|
echo "Missing UPDATE_NIX_ATTR_PATH - make sure you use mainters/scripts/update.nix to run this script!" 1>&2
|
|
exit 1
|
|
fi
|
|
|
|
attrPath="$UPDATE_NIX_ATTR_PATH"
|
|
|
|
nixFilePath="$(pwd)/pkgs/games/openra/engines/$build/default.nix"
|
|
if [[ ! -f "$nixFilePath" ]]; then
|
|
echo "$nixFilePath does not exist!" 1>&2
|
|
exit 1
|
|
fi
|
|
|
|
depsFilePath="$(pwd)/pkgs/games/openra/engines/$build/deps.json"
|
|
if [[ ! -f "$depsFilePath" ]]; then
|
|
echo "$depsFilePath does not exist!" 1>&2
|
|
exit 1
|
|
fi
|
|
|
|
# if on bleed, update to the latest commit from the bleed branch
|
|
# otherwise, check Github releases for releases with a matching prefix
|
|
declare newVersion
|
|
declare newHash
|
|
if [[ "$build" == "bleed" ]]; then
|
|
prefetchResult=$(nix-prefetch-github OpenRA OpenRA --json --rev "$build")
|
|
|
|
newRev=$(echo "$prefetchResult" | jq -e -r '.rev')
|
|
if [[ "$currentRev" == "$newRev" ]]; then
|
|
echo "Already up to date!" 1>&2
|
|
echo "[]"
|
|
exit 0
|
|
fi
|
|
|
|
# update rev
|
|
sed -i -E 's#(rev = ").*(";)#\1'"$newRev"'\2#' "$nixFilePath"
|
|
|
|
# get new version based on commit date from github
|
|
newVersion=$(curl -s "https://api.github.com/repos/OpenRA/OpenRA/commits/$newRev" |\
|
|
jq -r '.commit.committer.date' |\
|
|
xargs -I{} date -d {} +%Y%m%d)
|
|
|
|
newHash=$(echo "$prefetchResult" | jq -e -r '.hash')
|
|
else
|
|
newVersion=$(curl -s "https://api.github.com/repos/OpenRA/OpenRA/releases" |\
|
|
jq -r --arg prefix "$build" \
|
|
'first(.[] | select(.tag_name | startswith($prefix)) | .tag_name) | split("-")[1]')
|
|
|
|
if [[ "$currentVersion" == "$newVersion" ]]; then
|
|
echo "Already up to date!" 1>&2
|
|
echo "[]"
|
|
exit 0
|
|
fi
|
|
|
|
newHash=$(nix-prefetch-github OpenRA OpenRA --json --rev "$build-$newVersion" | jq -r '.hash')
|
|
fi
|
|
|
|
# update version
|
|
sed -i -E 's#(version = ").*(";)#\1'"$newVersion"'\2#' "$nixFilePath"
|
|
|
|
# update hash
|
|
sed -i -E 's#(hash = ").*(";)#\1'"$newHash"'\2#' "$nixFilePath"
|
|
|
|
# update deps.json by running the fetch-deps script
|
|
# shellcheck disable=SC2091
|
|
$(nix-build -A "$attrPath".fetch-deps --no-out-link) 1>&2
|
|
|
|
# echo commit info, according to what maintainers/scripts/update.nix needs
|
|
cat <<-EOF
|
|
[{
|
|
"attrPath": "$attrPath",
|
|
"oldVersion": "$currentVersion",
|
|
"newVersion": "$newVersion",
|
|
"files": ["$nixFilePath", "$depsFilePath"]
|
|
}]
|
|
EOF
|