#!/bin/bash set -xeuo pipefail add_repository() { local file=$1 local element=$2 local id="sonatype-snapshots" local name="Sonatype Snapshots" local url="https://s01.oss.sonatype.org/content/repositories/snapshots/" # Decide the tag based on the element local tag if [ "$element" = "repository" ]; then tag="repositories" elif [ "$element" = "pluginRepository" ]; then tag="pluginRepositories" fi # Repository to be inserted local repository="<$element> \ $id \ $name \ $url \ \ true \ daily \ \ \ false \ \ " # Check if the tag exists in the file if grep -q "<$tag>" "$file"; then # Insert the element before the closing tag sed -i "/<\/$tag>/i $repository" "$file" else # If the tag doesn't exist, create it and insert the element sed -i "/<\/project>/i \ <$tag> \ $repository \ " "$file" fi } git checkout -b new-quarkus-next origin/main add_repository "pom.xml" "repository" add_repository "quarkus/pom.xml" "pluginRepository" add_repository "operator/pom.xml" "pluginRepository" ./quarkus/set-quarkus-version.sh git commit -am "Set quarkus version to 999-SNAPSHOT" snapshot_version_hash=$(git log origin/quarkus-next --grep="Set quarkus version to 999-SNAPSHOT" --format="%H" -n 1) commits_to_cherry_pick=$(git rev-list --right-only --no-merges --reverse new-quarkus-next...origin/quarkus-next | grep -vE "$snapshot_version_hash" || echo "") if [ -z "$commits_to_cherry_pick" ]; then echo "Nothing to cherry-pick." else for commit in $commits_to_cherry_pick do if git cherry-pick "$commit"; then echo "Successfully cherry-picked $commit" else echo "Failed to cherry-pick $commit" exit 1 fi done fi