58 lines
		
	
	
		
			1 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			58 lines
		
	
	
		
			1 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
#!/usr/bin/env bash
 | 
						|
 | 
						|
#
 | 
						|
# Sends a pushover notification.
 | 
						|
#
 | 
						|
#   -t [TITLE]
 | 
						|
#   -m [MESSAGE]
 | 
						|
#   -p [PRIORITY_LEVEL]
 | 
						|
#   -u [URL]
 | 
						|
#   -U [URL_TITLE]
 | 
						|
#   -d [DEVICE]
 | 
						|
#
 | 
						|
 | 
						|
set -e
 | 
						|
unset CDPATH
 | 
						|
 | 
						|
secret_file=~/.secrets/pushover
 | 
						|
if [[ ! -f $secret_file ]]; then
 | 
						|
  >&2 echo "No pushover config file found"
 | 
						|
  exit 1
 | 
						|
fi
 | 
						|
 | 
						|
title=${2:+$1}
 | 
						|
message=${2:-$1}
 | 
						|
# priority=
 | 
						|
url=
 | 
						|
url_title=
 | 
						|
device=
 | 
						|
 | 
						|
while getopts t:m:p:u:d: opt; do
 | 
						|
  case $opt in
 | 
						|
    t) title="$OPTARG" ;;
 | 
						|
    m) message="$OPTARG" ;;
 | 
						|
    # p) priority="$OPTARG" ;;
 | 
						|
    u) url="$OPTARG" ;;
 | 
						|
    U) url_title="$OPTARG" ;;
 | 
						|
    d) device="$OPTARG" ;;
 | 
						|
    *) >&2 echo "Invalid option $OPTARG"
 | 
						|
       exit 1
 | 
						|
       ;;
 | 
						|
  esac
 | 
						|
done
 | 
						|
shift $((OPTIND-1))
 | 
						|
 | 
						|
#USER=...
 | 
						|
#TOKEN=...
 | 
						|
eval "$(gpg --decrypt $secret_file)"
 | 
						|
 | 
						|
curl -s \
 | 
						|
  --form-string "token=$TOKEN" \
 | 
						|
  --form-string "user=$USER" \
 | 
						|
  --form-string "title=$title" \
 | 
						|
  --form-string "message=$message" \
 | 
						|
  --form-string "url=$url" \
 | 
						|
  --form-string "url_title=$url_title" \
 | 
						|
  --form-string "device=$device" \
 | 
						|
  https://api.pushover.net/1/messages.json
 |