challenger

OAuth 2.0-based authentication service that validates user can receive messages at a certain address
Log | Files | Refs | Submodules | README | LICENSE

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