mirror of
https://github.com/Hopiu/angular.js.git
synced 2026-03-17 07:40:22 +00:00
Refactored all scripts so that they are divided into a `prepare` and a `publish` phase. By this we can build, test, tag, commit everything first. Only if all of this is ok we start pushing to Github. By this we keep Github consistent even in error cases. Extracted include script `/scripts/utils.inc`: - parse and validate named arguments in the style `--name=value` - proxy git command and deactivate `git push` based on command option `--git_push_dry_run=true` (will be inherited to child scripts) - enable/disable bash debug mode by command option `--verbose=true` - dispatch to functions based on command option `--action=...` - helper functions for dealing with json files
101 lines
2 KiB
Bash
Executable file
101 lines
2 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
# Script for updating the Angular bower repos from current local build.
|
|
|
|
echo "#################################"
|
|
echo "#### Update bower ###############"
|
|
echo "#################################"
|
|
|
|
ARG_DEFS=(
|
|
"--action=(prepare|publish)"
|
|
)
|
|
|
|
function init {
|
|
TMP_DIR=$(resolveDir ../../tmp)
|
|
BUILD_DIR=$(resolveDir ../../build)
|
|
NEW_VERSION=$(cat $BUILD_DIR/version.txt)
|
|
REPOS=(
|
|
angular
|
|
angular-animate
|
|
angular-cookies
|
|
angular-i18n
|
|
angular-loader
|
|
angular-mocks
|
|
angular-route
|
|
angular-resource
|
|
angular-sanitize
|
|
angular-scenario
|
|
angular-touch
|
|
)
|
|
}
|
|
|
|
|
|
function prepare {
|
|
#
|
|
# clone repos
|
|
#
|
|
for repo in "${REPOS[@]}"
|
|
do
|
|
echo "-- Cloning bower-$repo"
|
|
git clone git@github.com:angular/bower-$repo.git $TMP_DIR/bower-$repo
|
|
done
|
|
|
|
|
|
#
|
|
# move the files from the build
|
|
#
|
|
|
|
for repo in "${REPOS[@]}"
|
|
do
|
|
if [ -f $BUILD_DIR/$repo.js ] # ignore i18l
|
|
then
|
|
echo "-- Updating files in bower-$repo"
|
|
cd $TMP_DIR/bower-$repo
|
|
git reset --hard HEAD
|
|
git checkout master
|
|
git fetch --all
|
|
git reset --hard origin/master
|
|
cd $SCRIPT_DIR
|
|
cp $BUILD_DIR/$repo.* $TMP_DIR/bower-$repo/
|
|
fi
|
|
done
|
|
|
|
# move i18n files
|
|
cp $BUILD_DIR/i18n/*.js $TMP_DIR/bower-angular-i18n/
|
|
|
|
# move csp.css
|
|
cp $BUILD_DIR/angular-csp.css $TMP_DIR/bower-angular
|
|
|
|
|
|
#
|
|
# update bower.json
|
|
# tag each repo
|
|
#
|
|
for repo in "${REPOS[@]}"
|
|
do
|
|
echo "-- Updating version in bower-$repo to $NEW_VERSION"
|
|
cd $TMP_DIR/bower-$repo
|
|
replaceJsonProp "bower.json" "version" ".*" "$NEW_VERSION"
|
|
replaceJsonProp "bower.json" "angular.*" ".*" "$NEW_VERSION"
|
|
|
|
git add -A
|
|
|
|
echo "-- Committing and tagging bower-$repo"
|
|
git commit -m "v$NEW_VERSION"
|
|
git tag v$NEW_VERSION
|
|
cd $SCRIPT_DIR
|
|
done
|
|
}
|
|
|
|
function publish {
|
|
for repo in "${REPOS[@]}"
|
|
do
|
|
echo "-- Pushing bower-$repo"
|
|
cd $TMP_DIR/bower-$repo
|
|
git push origin master
|
|
git push origin v$NEW_VERSION
|
|
cd $SCRIPT_DIR
|
|
done
|
|
}
|
|
|
|
source $(dirname $0)/../utils.inc
|