Add scripts to generate update builds of OOjs and OOjs UI

Change-Id: Ib2e156cbd56dda3d32953d75bafca608eda974ad
This commit is contained in:
James D. Forrester 2014-02-14 18:13:16 -08:00
parent 425c9cbdfd
commit c68b967e3a
2 changed files with 186 additions and 0 deletions

View file

@ -0,0 +1,93 @@
#!/usr/bin/env bash
# FIXME this script is duplicated from update-oojs.sh - factor this out
# This script generates a commit that updates the oojs-ui distribution
# ./bin/update-oojs-ui.sh path/to/repo/for/oojs-ui
function oojsuihash() {
grep "OOjs UI v" resources/oojs-ui/oojs-ui.js \
| head -n 1 \
| grep -Eo '\([a-z0-9]+\)' \
| sed 's/^(//' \
| sed 's/)$//'
}
function oojsuitag() {
grep "OOjs UI v" resources/oojs-ui/oojs-ui.js \
| head -n 1 \
| grep -Eo '\bv[0-9a-z.-]+\b'
}
function oojsuiversion() {
grep "OOjs UI v" resources/oojs-ui/oojs-ui.js \
| head -n 1 \
| grep -Eo '\bv[0-9a-z.-]+\b.*$'
}
# cd to the VisualEditor directory
cd $(cd $(dirname $0)/../..; pwd)
if [ "x$1" == "x" ]
then
echo >&2 "Usage: update-oojs-ui.sh path/to/repo/for/oojs-ui"
exit 1
fi
# Undo any changes in the oojs-ui directory
git reset resources/oojs-ui/
git checkout resources/oojs-ui/
# Get the old oojs-ui version
OLDVERSION=$(oojsuihash)
if [ "x$OLDVERSION" == "x" ]
then
TAG=$(oojsuitag)
fi
# cd to the oojs-ui directory
cd $1 || exit 1
if [ "x$OLDVERSION" == "x" ]
then
# Try the tag
OLDVERSION=$(git rev-parse $TAG)
if [ $? != 0 ]
then
echo Could not find OOjs UI version
cd -
exit 1
fi
fi
if [ "$(git rev-parse $OLDVERSION)" == "$(git rev-parse HEAD)" ]
then
echo "No changes (already at $OLDVERSION)"
cd -
exit 0
fi
# Build the distribution
grunt
# Get the list of changes
NEWCHANGES=$(git log $OLDVERSION.. --oneline --no-merges --reverse --color=never)
NEWCHANGESDISPLAY=$(git log $OLDVERSION.. --oneline --no-merges --reverse --color=always)
# cd back to the VisualEditor directory
cd -
# Copy files from dist/ to resources/oojs-ui
cp -a $1/dist/{oojs-ui.js,oojs-ui.svg.css,images,i18n} resources/oojs-ui/
# Figure out what the new version is
NEWVERSION=$(oojsuiversion)
# Generate commit summary
COMMITMSG=$(cat <<END
Update OOjs UI to $NEWVERSION
New changes:
$NEWCHANGES
END
)
# Commit
git commit resources/oojs-ui/ -m "$COMMITMSG"
cat >&2 <<END
Created commit with changes:
$NEWCHANGESDISPLAY
END

93
resources/oojs/update-oojs.sh Executable file
View file

@ -0,0 +1,93 @@
#!/usr/bin/env bash
# FIXME this script is duplicated from update-oojs-ui.sh - factor this out
# This script generates a commit that updates the oojs distribution
# ./bin/update-oojs.sh path/to/repo/for/oojs
function oojshash() {
grep "OOjs v" resources/oojs/oojs.js \
| head -n 1 \
| grep -Eo '\([a-z0-9]+\)' \
| sed 's/^(//' \
| sed 's/)$//'
}
function oojstag() {
grep "OOjs v" resources/oojs/oojs.js \
| head -n 1 \
| grep -Eo '\bv[0-9a-z.-]+\b'
}
function oojsversion() {
grep "OOjs v" resources/oojs/oojs.js \
| head -n 1 \
| grep -Eo '\bv[0-9a-z.-]+\b.*$'
}
# cd to the MW directory
cd $(cd $(dirname $0)/../..; pwd)
if [ "x$1" == "x" ]
then
echo >&2 "Usage: update-oojs.sh path/to/repo/for/oojs"
exit 1
fi
# Undo any changes in the oojs directory
git reset resources/oojs/
git checkout resources/oojs/
# Get the old oojs version
OLDVERSION=$(oojshash)
if [ "x$OLDVERSION" == "x" ]
then
TAG=$(oojstag)
fi
# cd to the oojs directory
cd $1 || exit 1
if [ "x$OLDVERSION" == "x" ]
then
# Try the tag
OLDVERSION=$(git rev-parse $TAG)
if [ $? != 0 ]
then
echo Could not find OOjs version
cd -
exit 1
fi
fi
if [ "$(git rev-parse $OLDVERSION)" == "$(git rev-parse HEAD)" ]
then
echo "No changes (already at $OLDVERSION)"
cd -
exit 0
fi
# Build the distribution
grunt
# Get the list of changes
NEWCHANGES=$(git log $OLDVERSION.. --oneline --no-merges --reverse --color=never)
NEWCHANGESDISPLAY=$(git log $OLDVERSION.. --oneline --no-merges --reverse --color=always)
# cd back to the VisualEditor directory
cd -
# Copy files from dist/ to resources/oojs/
cp -a $1/dist/* resources/oojs/
# Figure out what the new version is
NEWVERSION=$(oojsversion)
# Generate commit summary
COMMITMSG=$(cat <<END
Update OOjs to $NEWVERSION
New changes:
$NEWCHANGES
END
)
# Commit
git commit resources/oojs/ -m "$COMMITMSG"
cat >&2 <<END
Created commit with changes:
$NEWCHANGESDISPLAY
END