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.

68 lines
2.0 KiB

  1. #!/bin/sh
  2. PATH_LIB='/lib/Image'
  3. array=('/var/www/10ballov','/var/www/predelanet','/var/www/zelenoemore','/var/www/d753_common')
  4. if [ ! -a CHANGELOG.md ]
  5. then
  6. echo 'File CHANGELOG.md not exists.'
  7. exit 1
  8. fi
  9. if [ test -n CHANGELOG.md ]
  10. then
  11. echo 'CHANGELOG.md is empty.'
  12. exit 1
  13. fi
  14. git diff-index --quiet HEAD --
  15. REPO_CHANGED=`echo $?`
  16. if [ $REPO_CHANGED ]
  17. then
  18. echo 'Please commit all changes in repository.'
  19. exit 1
  20. fi
  21. VERSION_PREVIOUS=`sed -n '4,4p' CHANGELOG.md | cut -d "(" -f1`
  22. if [ `git rev-parse ${VERSION_PREVIOUS}` != `git rev-parse HEAD` ]
  23. then
  24. 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}`
  25. gitchangelog > CHANGELOG.md &&
  26. git add CHANGELOG.md &&
  27. git commit -m "Update CHANGELOG.md on ${VERSION}" &&
  28. git tag $VERSION &&
  29. git push --tags
  30. else
  31. VERSION=$VERSION_PREVIOUS
  32. fi
  33. git push > /dev/null || exit 1
  34. MESSAGE="Update ${PATH_LIB} on ${VERSION}"
  35. CURRENT_DIR=`pwd`
  36. for project in "${array[@]}"
  37. do
  38. echo "Update lib for ${i}...\n"
  39. (cd "${project}${PATH_LIB}" &&
  40. git fetch > /dev/null &&
  41. git checkout $VERSION > /dev/null) ||
  42. (echo "Failed to checkout lib on tag ${VERSION}\n" &&
  43. exit 1)
  44. cd "${project}"
  45. git diff-index --quiet HEAD "${PATH_LIB#'/'}"
  46. if [ `echo $?` ]
  47. then
  48. (git reset > /dev/null
  49. git add "${PATH_LIB#'/'}" > /dev/null &&
  50. git commit -m $MESSAGE > /dev/null) ||
  51. (echo "Failed to update lib for ${project}\n" &&
  52. exit 1)
  53. if [ $project == "/var/www/d753_common" ]
  54. then
  55. (git push origin master > /dev/null &&
  56. cd /var/www/d753/ && ./merge-from-master.sh > /dev/null
  57. cd /var/www/d753_10ballov/ && ./merge-from-master.sh > /dev/null) ||
  58. (echo "Failed to update dependency d753 branches... Please resolve that problem by hand\n" &&
  59. exit 1)
  60. fi
  61. else
  62. echo "Already update\n"
  63. fi
  64. done
  65. echo "All operations succeed\n"
  66. exit 0