#!/bin/bash for cmd in find xargs php git; do command -v $cmd >/dev/null 2>&1 || { echo >&2 "I require $cmd but it's not installed. Aborting."; exit 1; } done find . -name "*.php" -print0 | xargs -0 -n1 php -l if [ $? -ne 0 ]; then echo "not deploying b0rken code ;)" exit 1 fi echo "" DEPLOY_BRANCH=`git rev-parse --abbrev-ref HEAD` if [ "x$DEPLOY_BRANCH" != "xmaster" ]; then echo "You're currently on branch $DEPLOY_BRANCH." echo "Are you sure you want to deoloy that branch (and not master)? then type yes" read -p "" input if [ "x$input" != "xyes" ]; then exit 2 fi fi if [ `git rev-parse --verify origin/$DEPLOY_BRANCH` != `git rev-parse --verify $DEPLOY_BRANCH` ]; then echo "You have commits on the master branch not pushed to origin yet. They would not be deployed." echo "do you still which to deploy what's already in the repo? then type yes" read -p "" input if [ "x$input" != "xyes" ]; then exit 2 fi fi if ! (git diff --exit-code >/dev/null || git diff --cached --exit-code >/dev/null); then echo "You have uncomitted changes. They would not be deployed." echo "do you still which to deploy what's already in the repo? then type yes" read -p "" input if [ "x$input" != "xyes" ]; then exit 2 fi fi for host in lb.dus.c3voc.de lb.alb.c3voc.de; do echo "deploying to $host" ssh -A voc@$host 'sudo sh' << EOT cd /srv/nginx/streaming-website git fetch origin git reset --hard HEAD git checkout $DEPLOY_BRANCH git reset --hard origin/$DEPLOY_BRANCH chown -R voc:staff . chown -R downloader configs ./clear_cache EOT echo "deploying to $host done" done