Add updateSubmodule.sh script

Generates a commit that updates the VE core submodule to
master (or a specified version)

Change-Id: I54c5fa18e9f9d7bb65a490415c5c139fd6072925
This commit is contained in:
Roan Kattouw 2014-01-17 16:20:12 -08:00 committed by James D. Forrester
parent 84433d6deb
commit 74242c790a

68
bin/updateSubmodule.sh Executable file
View file

@ -0,0 +1,68 @@
#!/usr/bin/env bash
# This script generates a commit that updates the lib/ve submodule
# ./bin/updateSubmodule.sh updates to master
# ./bin/updateSubmodule.sh hash updates to specified hash
# cd to the VisualEditor directory
cd $(cd $(dirname $0)/..; pwd)
# Check that both working directories are clean
if git status -uno --ignore-submodules | grep -i changes > /dev/null
then
echo >&2 "Working directory must be clean"
exit 1
fi
cd lib/ve
if git status -uno --ignore-submodules | grep -i changes > /dev/null
then
echo >&2 "lib/ve working directory must be clean"
exit 1
fi
cd ../..
git fetch origin
# Create sync-repos branch if needed and reset it to master
git checkout -B sync-repos origin/master
git submodule update
cd lib/ve
git fetch origin
# Figure out what to set the submodule to
if [ "x$1" != "x" ]
then
TARGET="$1"
TARGETDESC="$1"
else
TARGET=origin/master
TARGETDESC="master ($(git rev-parse --short origin/master))"
fi
# Generate commit summary
# TODO recurse
NEWCHANGES=$(git log ..$TARGET --oneline --no-merges --reverse --color=never)
NEWCHANGESDISPLAY=$(git log ..$TARGET --oneline --no-merges --reverse --color=always)
COMMITMSG=$(cat <<END
Update VE core submodule to $TARGETDESC
New changes:
$NEWCHANGES
END
)
# Check out master of VE core
git checkout $TARGET
# Commit
cd ../..
git commit lib/ve -m "$COMMITMSG" > /dev/null
if [ "$?" == "1" ]
then
echo >&2 "No changes"
else
cat >&2 <<END
Created commit with changes:
$NEWCHANGESDISPLAY
END
fi