hooks-post-receive-push-to-gh.sh 812 B

12345678910111213141516171819202122232425262728293031323334
  1. #!/usr/bin/env bash
  2. "/var/lib/git/gogs/gogs" hook --config='/var/lib/git/gogs/conf/app.ini' post-receive
  3. GIT_DIR="$(pwd)"
  4. TMP_GIT_DIR="/tmp/${GIT_DIR##*/}"
  5. if [[ ! -d "${TMP_GIT_DIR}" ]]; then
  6. git clone "${GIT_DIR}" "${TMP_GIT_DIR}"
  7. cd "${TMP_GIT_DIR}" || exit
  8. else
  9. cd "${TMP_GIT_DIR}" || exit
  10. unset GIT_DIR
  11. git fetch --all
  12. git reset --hard origin/master
  13. git pull
  14. fi
  15. for site in *.*/; do
  16. deploy_dir="/var/www/${site}"
  17. if [[ ! -d "$deploy_dir" ]]; then
  18. mkdir -p "$deploy_dir"
  19. chgrp -R "$deploy_dir"
  20. chmod g+s "$deploy_dir"
  21. fi
  22. pushd "${site}" || exit $?
  23. ruby -S bundle install --deployment
  24. ruby -S bundle exec jekyll build --destination "$deploy_dir"
  25. popd || exit $?
  26. done
  27. exit 0
  28. git push --mirror git@github.com:cryobry/www.git