#!/bin/bash command="$0" lockdir="deployments/lock" function usage { echo "$command [target] Manages the lock state of staging and prod deployments. lock target locks a logical target unlock target unlocks a logical target status shows the deployment lock state on various hosts" exit 1 } if [[ $# < 1 || $# >2 ]]; then usage fi function get_status { if (ssh zulip@$1.zulip.net '[ -d "'"$lockdir"'" ]'); then printf "%-10s %b" "$1" "is currently \e[31mlocked\e[0m\n" else printf "%-10s %b" "$1" "is currently \e[32munlocked\e[0m\n" fi } if [[ $1 == "lock" ]]; then verb="mkdir" elif [[ $1 == "unlock" ]]; then verb="rmdir" elif [[ $# == 1 && $1 == "status" ]]; then get_status "staging" get_status "prod0" exit else usage fi if [[ $2 == "staging" ]]; then ssh zulip@staging.zulip.net "$verb $lockdir" get_status "staging" exit elif [[ $2 == "prod" ]]; then ssh zulip@prod0.zulip.net "$verb $lockdir" get_status "prod0" exit else usage fi