#!/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 [[ $# -lt 1 || $# -gt 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