You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
74 lines
2.3 KiB
74 lines
2.3 KiB
#!/bin/bash
|
|
PATH_LIB='/lib/Image'
|
|
PROJECTS=( "/var/www/10ballov" "/var/www/predelanet" "/var/www/zelenoemore" "/var/www/d753_common" )
|
|
if [ ! -f "CHANGELOG.md" ]
|
|
then
|
|
echo "CHANGELOG.md not exists\n"
|
|
exit 1
|
|
fi
|
|
test -n "`tail CHANGELOG.md`"
|
|
CHANGELOG_EMPTY=`echo $?`
|
|
if [ $CHANGELOG_EMPTY == 1 ]
|
|
then
|
|
echo -e "CHANGELOG.md is empty\n"
|
|
exit 1
|
|
fi
|
|
git diff-index --quiet HEAD --
|
|
REPO_CHANGED=`echo $?`
|
|
if [ $REPO_CHANGED == 1 ]
|
|
then
|
|
echo -e "Please commit all changes in repository\n"
|
|
exit 1
|
|
fi
|
|
VERSION_PREVIOUS=`sed -n '4,4p' CHANGELOG.md | cut -d "(" -f1`
|
|
if [ `git rev-parse ${VERSION_PREVIOUS}` != `git rev-parse HEAD` ]
|
|
then
|
|
VERSION=`echo ${VERSION_PREVIOUS} | awk -F. -v OFS=. 'NF==1{print ++$NF}; NF>1{if(length($NF+1)>length($NF))$(NF-1)++; $NF=sprintf("%0*d", length($NF), ($NF+1)%(10^length($NF))); print}'`
|
|
git tag $VERSION &&
|
|
gitchangelog > CHANGELOG.md &&
|
|
(git add CHANGELOG.md > /dev/null &&
|
|
git commit -m 'Update CHANGELOG.md' > /dev/null &&
|
|
git push --tags > /dev/null) ||
|
|
(echo -e "Cannot push released tag into remote repository\n" &&
|
|
exit 1)
|
|
else
|
|
VERSION=$VERSION_PREVIOUS
|
|
fi
|
|
git push > /dev/null || exit 1
|
|
|
|
MESSAGE="\nUpdate ${PATH_LIB} on ${VERSION}\n"
|
|
CURRENT_DIR=`pwd`
|
|
for project in "${PROJECTS[@]}"
|
|
do
|
|
echo -e "Update lib for ${project}...\n"
|
|
(cd "${project}${PATH_LIB}" &&
|
|
git fetch >/dev/null 2>/dev/null &&
|
|
git checkout $VERSION 2>/dev/null) ||
|
|
(echo -e "Failed to checkout lib on tag ${VERSION}\n" &&
|
|
exit 1)
|
|
cd "${project}"
|
|
LIB_DIR=`echo ${PATH_LIB#'/'}`
|
|
git diff-index --quiet HEAD "$LIB_DIR"
|
|
LIB_NEW_COMMITS=`echo $?`
|
|
if [ $LIB_NEW_COMMITS == 1 ]
|
|
then
|
|
(git reset > /dev/null &&
|
|
git add "$LIB_DIR" > /dev/null &&
|
|
git commit -m $MESSAGE > /dev/null) ||
|
|
(echo -e "Failed to update lib for ${project}\n" &&
|
|
exit 1)
|
|
if [ $project == "/var/www/d753_common" ]
|
|
then
|
|
(git push origin master > /dev/null &&
|
|
cd /var/www/d753/ && ./merge-from-master.sh > /dev/null
|
|
cd /var/www/d753_10ballov/ && ./merge-from-master.sh > /dev/null) ||
|
|
(echo -e "Failed to update dependency d753 branches... Please resolve that problem by hand\n" &&
|
|
exit 1)
|
|
fi
|
|
else
|
|
echo -e "Already update\n"
|
|
fi
|
|
done
|
|
|
|
echo -e "All operations succeed\n"
|
|
exit 0
|