#!/bin/bash -e hst_this=$(hostname -s) if ! echo "$hst_this" | egrep -q "^(admin|develop)"; then # unless the .ao_no_proxy file exists if [[ ! -f ".ao_no_proxy" ]]; then # ssh into deploy host and run from there exec bin/proxy $(basename $0) "$@" exit 1 fi fi export LOCAL_ONLY=true case "$(basename $0)" in invoke) export COMMAND="$1"; shift if [[ -n $1 ]]; then set -- $(for a in "$@"; do echo $a.app; done) fi LOCAL_ONLY= tmp_invoke=$(mktemp -t XXXXXXXXX) bundle exec cap "$@" invoke 2>&1 | perl -pe 's{.\[\d+m}{}g' | perl -ne 'm{^\s*\*+\s*\[(out|err)\s*::\s*([^]]+)\] ?(.*)} && print "$1 $2 $3\n"' > $tmp_invoke 2>&1 cat $tmp_invoke | awk '{print $2}' | sort -u | while read -r nm_host; do egrep "^(out|err) $nm_host" $tmp_invoke || true echo done rm -f $tmp_invoke ;; *) if [[ -n $1 ]]; then set -- $(for a in "$@"; do echo $a; done) fi case "$(basename $0)" in debug) if [[ -z $1 ]]; then set "world" fi if [[ -n $1 ]]; then cap $(for a in "$@"; do echo $a.echo; done) fi ;; hosts) { if [[ -n $1 ]]; then cap $(for a in "$@"; do echo $a.echo; done) fi } 2>&1 | grep eea914aaa8dde6fdae29242b1084a2b0415eefaf | awk '{print $NF}' | sort -u ;; dna) { echo "eea914aaa8dde6fdae29242b1084a2b0415eefaf ---" if [[ -n $1 ]]; then cap $(for a in "$@"; do echo $a.yaml; done) fi } 2>&1 | grep eea914aaa8dde6fdae29242b1084a2b0415eefaf | sed 's#eea914aaa8dde6fdae29242b1084a2b0415eefaf ##' ;; *) LOCAL_ONLY= if [[ -n $1 ]]; then set -- $(for a in "$@"; do echo $a.app; done) fi case "$(basename $0)" in deploy) bundle exec cap "$@" deploy:lock deploy ;; release) bundle exec cap "$@" deploy:lock deploy ;; stage) bundle exec cap "$@" deploy:lock deploy:update_code deploy:symlink_next ;; restart) bundle exec cap "$@" deploy:lock deploy:restart ;; config) bundle exec cap "$@" deploy:lock deploy:config ;; build) bundle exec cap "$@" deploy:lock deploy:build ;; dist) bundle exec cap "$@" deploy:lock deploy:dist ;; activate) bundle exec cap "$@" deploy:lock deploy:symlink deploy:restart ;; rollback) bundle exec cap "$@" deploy:lock deploy:rollback ;; check) bundle exec cap "$@" deploy:lock deploy:check ;; plan) bundle exec cap "$@" deploy:lock deploy:plan ;; lock) case "${1%.app}" in compare|migrate) nm_lock="${1%.app}"; shift bundle exec cap "$@" deploy:dont_unlock "deploy:lock_${nm_lock}" ;; *) bundle exec cap "$@" deploy:dont_unlock deploy:lock ;; esac ;; unlock) case "${1%.app}" in compare|migrate) nm_lock="${1%.app}"; shift bundle exec cap "$@" "deploy:unlock_${nm_lock}" ;; *) bundle exec cap "$@" deploy:unlock ;; esac ;; shell) bundle exec cap "$@" shell ;; compare) bundle exec cap "$@" deploy:lock_compare deploy:compare ;; repl) bundle exec cap "$@" deploy:lock_compare deploy:repl ;; migrate) want_list= if [[ "${1%.app}" = "list" ]]; then want_list=1; shift fi change_group= migration= case "${1%.app}" in data) change_group=${1%.app}; shift ;; pre) change_group=${1%.app}; shift ;; during) change_group=${1%.app} shift ;; post) change_group=${1%.app}; shift ;; [0123456789][0123456789][0123456789][0123456789][0123456789][0123456789][0123456789][0123456789][0123456789][0123456789][0123456789][0123456789][0123456789][0123456789]) migration=${1%.app}; shift ;; esac if [[ -n $change_group ]]; then if [[ -n $want_list ]]; then echo "listing change group $change_group" else echo "running change group $change_group" fi elif [[ -n $migration ]]; then echo "running migration $migratio" elif [[ -n $want_list ]]; then echo "listing migrations" fi bundle exec cap "$@" deploy:lock_migrate deploy:migrate ;; *) bundle exec cap "$@" ;; esac esac ;; esac