зеркало из https://github.com/microsoft/bedrock.git
56 строки
1.8 KiB
Bash
Executable File
56 строки
1.8 KiB
Bash
Executable File
#!/bin/bash
|
|
# This script helps toggle the remote version reference within the current
|
|
# checkout repository. This will help facilitate the process of doing
|
|
# pull requests where the remote referenced modules changed.
|
|
#
|
|
# It is assumed that remote source URLs are of the form:
|
|
#
|
|
# github.com/<entity>/<repository>?ref=<current version>//...
|
|
#
|
|
# Note, this script will make changes to the current files checked out.
|
|
while getopts :c:v: option
|
|
do
|
|
case "${option}" in
|
|
c) CURRENT_VERSION=${OPTARG};;
|
|
v) NEW_VERSION=${OPTARG};;
|
|
*) echo "Please refer to usage guide on GitHub" >&2
|
|
exit 1 ;;
|
|
esac
|
|
done
|
|
|
|
entity_name="microsoft"
|
|
project_name="bedrock"
|
|
|
|
if [ -z "$NEW_VERSION" ]; then
|
|
echo "version to update remote references to is required"
|
|
exit 1
|
|
fi
|
|
|
|
if [ -c "$CURRENT_VERSION" ]; then
|
|
echo "version to update remote references to is required"
|
|
exit 1
|
|
fi
|
|
|
|
NEW_VERSION=`echo $NEW_VERSION | sed 's/\./\\\./g'`
|
|
CURRENT_VERSION=`echo $CURRENT_VERSION | sed 's/\./\\\./g'`
|
|
|
|
read -p "This script will modify files in this checked out repository. Are you sure you want to continue? " -n 1 -r
|
|
if [[ $REPLY =~ ^[Yy]$ ]]
|
|
then
|
|
# go to base Bedrock directory (relative to this script location which is
|
|
# <top level>/tools.
|
|
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
|
|
cd $SCRIPT_DIR/..
|
|
|
|
# determine files that need updating
|
|
FILE_SEARCH=`grep -r "source[ ]\{0,\}=[ ]\{0,\}\"github.com\/$entity_name\/$project_name" * | awk '{print $1}' | grep ".tf" | sort -u | sed "s/://"`
|
|
echo $FILE_SEARCH
|
|
|
|
# update files
|
|
for f in $FILE_SEARCH; do
|
|
sed -i -r "s/source[ ]{0,}=[ ]{0,}\"github.com\/$entity_name\/$project_name\?ref=$CURRENT_VERSION\/\/(.*)\"/source = \"github.com\/$entity_name\/$project_name\?ref=$NEW_VERSION\/\/\1\"/g" $f
|
|
done
|
|
|
|
echo "remote references updated"
|
|
fi
|