diff --git a/pkgs/applications/version-management/sourcehut/fix-gqlgen-trimpath.nix b/pkgs/applications/version-management/sourcehut/fix-gqlgen-trimpath.nix index ee598c5ed914..5c6f9aa18b2f 100644 --- a/pkgs/applications/version-management/sourcehut/fix-gqlgen-trimpath.nix +++ b/pkgs/applications/version-management/sourcehut/fix-gqlgen-trimpath.nix @@ -1,5 +1,5 @@ { unzip -, gqlgenVersion ? "0.17.42" +, gqlgenVersion }: { overrideModAttrs = (_: { diff --git a/pkgs/applications/version-management/sourcehut/update.sh b/pkgs/applications/version-management/sourcehut/update.sh index e9efc0816eb1..e5dd0b5baed0 100755 --- a/pkgs/applications/version-management/sourcehut/update.sh +++ b/pkgs/applications/version-management/sourcehut/update.sh @@ -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