93 lines
2.2 KiB
Bash
Executable File
93 lines
2.2 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Script for updating code.angularjs.org repo from current local build.
|
|
|
|
echo "#################################"
|
|
echo "## Update code.angularjs.org ###"
|
|
echo "#################################"
|
|
|
|
ARG_DEFS=(
|
|
"--action=(prepare|publish)"
|
|
"--version-number=([0-9]+\.[0-9]+\.[0-9]+(-[a-z]+\.[0-9]+)?)"
|
|
)
|
|
|
|
function init {
|
|
TMP_DIR=$(resolveDir ../../tmp)
|
|
BUILD_DIR=$(resolveDir ../../dist/js/bundle)
|
|
REPO_DIR=$TMP_DIR/code.angularjs.org
|
|
# TODO: replace with version read from the bundle dir.
|
|
NEW_VERSION=$VERSION_NUMBER
|
|
if [[ "$NEW_VERSION" =~ sha ]]; then
|
|
IS_SNAPSHOT_BUILD=true
|
|
else
|
|
IS_SNAPSHOT_BUILD=
|
|
fi
|
|
RX_BUNDLE_DIR=$(resolveDir ../../node_modules/rxjs/bundles)
|
|
}
|
|
|
|
function prepare {
|
|
|
|
|
|
|
|
if [ -d "$REPO_DIR" ]; then
|
|
(
|
|
cd $REPO_DIR
|
|
git fetch --update-shallow origin
|
|
git checkout master
|
|
git merge --ff-only origin/master
|
|
)
|
|
else
|
|
echo "-- Cloning code.angularjs.org into $REPO_DIR"
|
|
git clone git@github.com:angular/code.angularjs.org.git $REPO_DIR --depth=1
|
|
fi
|
|
|
|
echo "-- Updating code.angularjs.org"
|
|
|
|
if [[ $IS_SNAPSHOT_BUILD ]]; then
|
|
#
|
|
# update the snapshot folder
|
|
#
|
|
rm -rf $REPO_DIR/snapshot-angular2/
|
|
mkdir $REPO_DIR/snapshot-angular2
|
|
cp -r $BUILD_DIR/* $REPO_DIR/snapshot-angular2/
|
|
else
|
|
#
|
|
# copy the files from the build
|
|
#
|
|
mkdir $REPO_DIR/$NEW_VERSION
|
|
cp -r $BUILD_DIR/* $REPO_DIR/$NEW_VERSION/
|
|
cp -r $RX_BUNDLE_DIR/* $REPO_DIR/$NEW_VERSION/
|
|
fi
|
|
|
|
#
|
|
# commit
|
|
#
|
|
echo "-- Committing code.angularjs.org"
|
|
cd $REPO_DIR
|
|
git add -A
|
|
git commit -m "v$NEW_VERSION"
|
|
}
|
|
|
|
|
|
function _update_code() {
|
|
cd $REPO_DIR
|
|
|
|
echo "-- Pushing code.angularjs.org"
|
|
git push origin master
|
|
|
|
for backend in "$@" ; do
|
|
echo "-- Refreshing code.angularjs.org: backend=$backend"
|
|
curl http://$backend:8003/gitFetchSite.php
|
|
done
|
|
}
|
|
|
|
function publish {
|
|
# The TXT record for backends.angularjs.org is a CSV of the IP addresses for
|
|
# the currently serving Compute Engine backends.
|
|
# code.angularjs.org is served out of port 8003 on these backends.
|
|
backends=("$(dig backends.angularjs.org +short TXT | python -c 'print raw_input()[1:-1].replace(",", "\n")')")
|
|
_update_code ${backends[@]}
|
|
}
|
|
|
|
source $(dirname $0)/../utils.inc
|