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.

69 lines
2.0 KiB

#!/bin/sh
PATH_LIB='/lib/Image'
array=('/var/www/10ballov','/var/www/predelanet','/var/www/zelenoemore','/var/www/d753_common')
if [ ! -a CHANGELOG.md ]
then
echo 'File CHANGELOG.md not exists.'
exit 1
fi
if [ test -n CHANGELOG.md ]
then
echo 'CHANGELOG.md is empty.'
exit 1
fi
git diff-index --quiet HEAD --
REPO_CHANGED=`echo $?`
if [ $REPO_CHANGED ]
then
echo 'Please commit all changes in repository.'
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}`
gitchangelog > CHANGELOG.md &&
git add CHANGELOG.md &&
git commit -m "Update CHANGELOG.md on ${VERSION}" &&
git tag $VERSION &&
git push --tags
else
VERSION=$VERSION_PREVIOUS
fi
git push > /dev/null || exit 1
MESSAGE="Update ${PATH_LIB} on ${VERSION}"
CURRENT_DIR=`pwd`
for project in "${array[@]}"
do
echo "Update lib for ${i}...\n"
(cd "${project}${PATH_LIB}" &&
git fetch > /dev/null &&
git checkout $VERSION > /dev/null) ||
(echo "Failed to checkout lib on tag ${VERSION}\n" &&
exit 1)
cd "${project}"
git diff-index --quiet HEAD "${PATH_LIB#'/'}"
if [ `echo $?` ]
then
(git reset > /dev/null
git add "${PATH_LIB#'/'}" > /dev/null &&
git commit -m $MESSAGE > /dev/null) ||
(echo "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 "Failed to update dependency d753 branches... Please resolve that problem by hand\n" &&
exit 1)
fi
else
echo "Already update\n"
fi
done
echo "All operations succeed\n"
exit 0