#!/usr/bin/env bash set -Eeuo pipefail if [[ "$(hostname)" != "jeeves" ]]; then echo "Signal device authorization must run on jeeves." >&2 exit 1 fi if [[ "$EUID" -ne 0 ]]; then echo "Signal device authorization must run as root." >&2 exit 1 fi if [[ "$#" -ne 1 ]]; then echo "Usage: signal_authorize.sh DEVICE_URI" >&2 exit 2 fi if [[ "$1" != sgnl://linkdevice\?* ]]; then echo "Invalid Signal device link URI." >&2 exit 2 fi service_name="signal-cli" data_dir="/var/lib/signal-cli" device_uri="$1" restart_service=false cleanup() { if [[ "$restart_service" == true ]]; then systemctl start "$service_name" fi } trap cleanup EXIT restart_service=true systemctl stop "$service_name" runuser -u signal-cli -- \ signal-cli --data-dir "$data_dir" -a +12016554378 addDevice --uri "$device_uri"