fa3f2840a841ea23e34ea8d63e51b2e9f5a69051
[pillar-svnman.git] / rsync_ui.sh
1 #!/usr/bin/env bash
2
3 set -e  # error out when one of the commands in the script errors.
4
5 if [ -z "$1" ]; then
6     echo "Usage: $0 {host-to-deploy-to}" >&2
7     exit 1
8 fi
9
10 DEPLOYHOST="$1"
11
12 # macOS does not support readlink -f, so we use greadlink instead
13 if [[ `uname` == 'Darwin' ]]; then
14     command -v greadlink 2>/dev/null 2>&1 || { echo >&2 "Install greadlink using brew."; exit 1; }
15     readlink='greadlink'
16 else
17     readlink='readlink'
18 fi
19
20 MY_DIR="$(dirname "$($readlink -f "$0")")"
21 if [ ! -d "$MY_DIR" ]; then
22     echo "Unable to find dir '$MY_DIR'"
23     exit 1
24 fi
25
26 ASSETS="$MY_DIR/svnman/static/assets/"
27 TEMPLATES="$MY_DIR/svnman/templates/pillar-svnman"
28
29 if [ ! -d "$ASSETS" ]; then
30     echo "Unable to find assets dir $ASSETS"
31     exit 1
32 fi
33
34 cd $MY_DIR
35 if [ $(git rev-parse --abbrev-ref HEAD) != "production" ]; then
36     echo "You are NOT on the production branch, refusing to rsync_ui." >&2
37     exit 1
38 fi
39
40 echo
41 echo "*** GULPA GULPA ***"
42 ./gulp --production
43
44 echo
45 echo "*** SYNCING ASSETS ***"
46 # Exclude files managed by Git.
47 rsync -avh $ASSETS --exclude js/vendor/ root@${DEPLOYHOST}:/data/git/pillar-svnman/svnman/static/assets/
48
49 echo
50 echo "*** SYNCING TEMPLATES ***"
51 rsync -avh $TEMPLATES root@${DEPLOYHOST}:/data/git/pillar-svnman/svnman/templates/