From 70f251840969285d791bbba72b88fe4f1b57cf39 Mon Sep 17 00:00:00 2001 From: Chris Kleeschulte Date: Fri, 13 Oct 2017 16:29:51 -0400 Subject: [PATCH] Added a deploy script. --- .gitignore | 2 ++ scripts/deploy.sh | 71 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 73 insertions(+) create mode 100644 scripts/deploy.sh diff --git a/.gitignore b/.gitignore index 61b58ad44..085a310bf 100644 --- a/.gitignore +++ b/.gitignore @@ -18,3 +18,5 @@ report build tests.js + +scripts/servers.* diff --git a/scripts/deploy.sh b/scripts/deploy.sh new file mode 100644 index 000000000..c81213cef --- /dev/null +++ b/scripts/deploy.sh @@ -0,0 +1,71 @@ +#!/bin/bash +set -e + +############# variables ################ + +user=`whoami` +process=false + +######################################## + +# deploys latest bitcore to application servers over ssh + +if [ -z "${1}" ]; then + echo 'no server file given, exiting.' + exit 1 +fi + +green="\033[38;5;40m" +magenta="\033[38;5;200m" +reset="\033[0m" +ssh="ssh -l${user} -p" + +function execCmd() { + echo -e ${green}$cmd${reset} + echo "-------------------------------------------------" + if [ "${process}" = true ]; then + eval "${sshCmd}\"${cmd}\"" + fi +} + +function deploy () { + + # start a subshell to monitor the logs + ( eval "${sshCmd}\"${logCmd}\"" ) & + child=$! + + # stop the server + cmd="sudo service bitcored stop" + execCmd + + # run npm install -g bitcore@beta + cmd="sudo su - bitcore -c 'npm install -g bitcore@beta'" + execCmd + + # start server + cmd="sudo service bitcored start" + execCmd + +} + + + +while IFS='' read -r server || [[ -n "$server" ]]; do + echo "deploying to: $server" + IFS=':' read -ra url <<< "${server}" + port="${url[1]}" + host="${url[0]}" + logType="${url[2]}" + if [ -z "${port}" ]; then + port=22 + fi + if [ -z "${logType}" ]; then + logCmd="sudo journalctl -f" + else + logCmd="sudo tail -f /var/log/upstart/bitcored*" + fi + sshCmd="${ssh}${port} ${host} " + deploy +done < "$1" + +wait "${child}"