#!/bin/bash # looks for (and modreplaces if existing) a smithy-go branch matching the # current branch name # # the loop will unfurl -*s off of the branch, e.g. sdk branch # 'feat-foo-bar-baz' will match any of the following (in order): # - feat-foo-bar-baz # - feat-foo-bar # - feat-foo if [ -z "$SMITHY_GO_REPOSITORY" ]; then SMITHY_GO_REPOSITORY=aws/smithy-go fi if [ -z "$RUNNER_TMPDIR" ]; then echo env RUNNER_TMPDIR is required exit 1 fi branch=$(git branch --show-current) if [ "$branch" == main ]; then echo aws-sdk-go-v2 is on branch main, stop exit 0 fi # For PR workflows, only the triggering ref is checked out, which in isolation # is not recognized as a branch by git. Use the specific workflow env instead. if [ -z "$branch" ]; then branch=$GITHUB_HEAD_REF fi if [ -n "$GIT_PAT" ]; then repository=https://$GIT_PAT@github.com/$SMITHY_GO_REPOSITORY else repository=https://github.com/$SMITHY_GO_REPOSITORY fi echo on branch \"$branch\" while [ -n "$branch" ] && [[ "$branch" == *-* ]]; do echo looking for "$branch"... git ls-remote --exit-code --heads "$repository" refs/heads/"$branch" if [ "$?" == 0 ]; then echo found "$branch" matched_branch=$branch break fi branch=${branch%-*} done if [ -z "$matched_branch" ]; then echo found no matching smithy-go branch, stop exit 0 fi git clone -b "$matched_branch" "$repository" "$RUNNER_TMPDIR"/smithy-go SMITHY_GO_SRC=$RUNNER_TMPDIR/smithy-go make gen-mod-replace-smithy-.