#!/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