#!/bin/bash USER=user SERVER=host.example.com LIVE_DIR=path/to/example.com/ DEV_DIR=path/to/dev.example.com/ CONTENT=content/ ERROR="Error. Please make sure you've indicated correct parameters" if [ $# -eq 0 ] then echo $ERROR; exit 1 elif [ $1 == "dev" ] then DIR=$DEV_DIR elif [ $1 == "live" ] then DIR=$LIVE_DIR else echo $ERROR exit 1 fi if [[ -z $2 ]] then echo "Running App Sync (dry-run)" rsync --dry-run -az --force --delete --progress --exclude-from=.rsyncignore ./ $USER@$SERVER:$DIR; elif [[ $2 == "ssh" ]] then echo "entering server" ssh -t $USER@$SERVER "cd $LIVE_DIR; bash --login"; elif [[ $2 == "go" ]] then echo "Running App Sync" rsync -az --force --delete --progress --exclude-from=.rsyncignore ./ $USER@$SERVER:$DIR; elif [[ $2 == "content" ]] then if [[ -z $3 ]] then echo "Fetching Content (dry-run)" rsync --dry-run -azv --force --delete --progress --exclude-from=.rsyncignore $USER@$SERVER:$DIR$CONTENT ./$CONTENT; echo "done" elif [[ $3 == "go" ]] then echo "Fetching Content" rsync -azv --force --delete --progress --exclude-from=.rsyncignore $USER@$SERVER:$DIR$CONTENT ./$CONTENT; echo "done" elif [[ $3 == "up" ]] then if [[ -z $4 ]] then echo "Uploading Content (dry-run)" rsync --dry-run -azv --progress --exclude-from=.rsyncignore ./$CONTENT $USER@$SERVER:$DIR$CONTENT; echo "done" elif [[ $4 == "go" ]] then echo "Uploading Content" rsync -azv --progress --exclude-from=.rsyncignore ./$CONTENT $USER@$SERVER:$DIR$CONTENT; echo "done" elif [[ $4 == "del" ]] then if [[ -z $5 ]] then echo "Uploading Content, deleting remotes that don't occur locally (dry-run)" rsync --dry-run -azv --progress --delete --exclude-from=.rsyncignore ./$CONTENT $USER@$SERVER:$DIR$CONTENT; echo "done" elif [[ $5 == "go" ]] then echo "Uploading Content, deleting remotes that don't occur locally" rsync -azv --progress --delete --exclude-from=.rsyncignore ./$CONTENT $USER@$SERVER:$DIR$CONTENT; echo "done" fi fi fi fi