challenger-send-sms (755B)
1 #!/bin/bash 2 # This file is in the public domain. 3 # Send an SMS 4 set -eu 5 6 if [ $# -ne 1 ]; then 7 echo "Usage: $0 '{\"CONTACT_PHONE\":\"+41712345678\"}'" 1>&2 8 exit 1 9 fi 10 11 SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" 12 SCRIPT_NAME=$(basename "$0") 13 BASE="${SCRIPT_NAME}" 14 15 PHONE_NUMBER=$(echo "$1" | jq -r .CONTACT_PHONE) 16 MESSAGE=$(cat -) 17 18 # List of sub-scripts to try. 19 PROVIDERS="telesign clicksend" 20 21 for PROVIDER in $PROVIDERS; do 22 SCRIPT_PATH="$SCRIPT_DIR/${BASE}-${PROVIDER}" 23 if [ -x "$SCRIPT_PATH" ]; then 24 if echo "$MESSAGE" | "$SCRIPT_PATH" "$PHONE_NUMBER"; then 25 exit 0 26 else 27 echo "$PROVIDER failed to send to $PHONE_NUMBER." 1>&2 28 fi 29 fi 30 done 31 32 echo "All SMS providers failed to send to $PHONE_NUMBER." 1>&2 33 exit 1