sourcehut: update.sh: bump `gqlgenVersion` on update too

This extends the current script to pull the gqlgen version from the
go.mod file in the repository root (which we check out already anyway)
and replace it as necessary.

Makes updating all packages _a lot_ less painful. And since this is now
automated, remove the default value we previously defined for
`gqlgenVersion`.

Signed-off-by: Christoph Heiss <christoph@c8h4.io>
This commit is contained in:
Christoph Heiss 2024-03-29 00:13:36 +01:00
parent ae67af30bc
commit 8edd3e2105
No known key found for this signature in database
GPG Key ID: 73D5E7FDEE3DE49A
2 changed files with 14 additions and 6 deletions

View File

@ -1,5 +1,5 @@
{ unzip
, gqlgenVersion ? "0.17.42"
, gqlgenVersion
}:
{
overrideModAttrs = (_: {

View File

@ -1,5 +1,5 @@
#! /usr/bin/env nix-shell
#! nix-shell -i bash -p git mercurial common-updater-scripts
#! nix-shell -i bash -p gnused git mercurial common-updater-scripts
set -eux -o pipefail
cd "$(dirname "${BASH_SOURCE[0]}")" || exit 1
@ -34,21 +34,29 @@ get_latest_version() {
rm -rf "$tmp"
if [ "$1" = "hgsrht" ]; then
hg clone "$src" "$tmp" >/dev/null
printf "%s" "$(cd "$tmp" && hg log --limit 1 --template '{latesttag}')"
printf "%s %s\n" \
"$(cd "$tmp" && hg log --limit 1 --template '{latesttag}')" \
"$(cd "$tmp" && sed -ne 's/^\s*github\.com\/99designs\/gqlgen v\(.*\)$/\1/p' go.mod)"
else
git clone "$src" "$tmp" >/dev/null
printf "%s" "$(cd "$tmp" && git describe "$(git rev-list --tags --max-count=1)")"
printf "%s %s\n" \
"$(cd "$tmp" && git describe "$(git rev-list --tags --max-count=1)")" \
"$(cd "$tmp" && sed -ne 's/^\s*github\.com\/99designs\/gqlgen v\(.*\)$/\1/p' go.mod)"
fi
}
update_version() {
default_nix="$(default "$1")"
oldVersion="$(version "$1")"
version="$(get_latest_version "$1")"
read -r version gqlgen_ver < <(get_latest_version "$1")
local p="$(attr_path "$1")"
(cd "$root" && update-source-version "$p" "$version")
# update `gqlgenVersion` if necessary
old_gqlgen_ver="$(sed -ne 's/^.*gqlgenVersion = "\(.*\)".*$/\1/p' "$default_nix")"
sed -ri "s|gqlgenVersion = \"$old_gqlgen_ver\";|gqlgenVersion = \"$gqlgen_ver\";|w /dev/stdout" "$default_nix"
# Update vendorHash of Go modules
retry=true
while "$retry"; do
@ -63,7 +71,7 @@ update_version() {
done
done
if [ "$oldVersion" != "$version" ]; then
if [ "$oldVersion" != "$version" ] || [ "$old_gqlgen_ver" != "$gqlgen_ver" ]; then
git add "$default_nix"
git commit -m "sourcehut.$1: $oldVersion -> $version"
fi