Initial committ.
parent
17e2d9c30e
commit
57817d54fc
@ -1,2 +1,30 @@
|
|||||||
# errol
|
errol
|
||||||
|
================================================================================
|
||||||
|
|
||||||
A Script to send notifications via the Pushbullet API.
|
A Script to send notifications via the Pushbullet API.
|
||||||
|
|
||||||
|
Currently this script is only cable of send to all devices on your Pushbullet
|
||||||
|
account simultanesouly.
|
||||||
|
|
||||||
|
Usage
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
Usage:
|
||||||
|
errol
|
||||||
|
[-h|--help]
|
||||||
|
[(-k|--token) token]
|
||||||
|
(-t|--title) title
|
||||||
|
(-m|--msg) message
|
||||||
|
|
||||||
|
Arguments:
|
||||||
|
-h,--help
|
||||||
|
Print this usage message.
|
||||||
|
-k,--token
|
||||||
|
The Pushbullet API token. If not passed in form the commandline, this
|
||||||
|
value will be read from the $PB_API_TOKEN environment variable. One or
|
||||||
|
the other must be provided.
|
||||||
|
-t,--title
|
||||||
|
The title of the notification.
|
||||||
|
-m,--msg
|
||||||
|
The message body of the notification.
|
||||||
|
|
||||||
|
|||||||
@ -0,0 +1,157 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# errol is a short and sweet script that will send a notification using the
|
||||||
|
# Pushbullet API.
|
||||||
|
#
|
||||||
|
# Currently this script is only capable of sending to all devices connected to
|
||||||
|
# your Pushbullet account.
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
|
||||||
|
# Required arguments
|
||||||
|
TITLE=
|
||||||
|
MSG=
|
||||||
|
TOKEN=
|
||||||
|
|
||||||
|
# Pushbullet API constants.
|
||||||
|
PUSHBULLET_BASE_URL="https://api.pushbullet.com"
|
||||||
|
USER_URL="${PUSHBULLET_BASE_URL}/v2/users/me"
|
||||||
|
PUSH_URL="${PUSHBULLET_BASE_URL}/v2/pushes"
|
||||||
|
DEVICES_URL="${PUSHBULLET_BASE_URL}/v2/devices"
|
||||||
|
|
||||||
|
# Parameter strings.
|
||||||
|
LONG_TITLE_STR="title"; SHORT_TITLE_STR="t"
|
||||||
|
LONG_MSG_STR="msg"; SHORT_MSG_STR="m"
|
||||||
|
LONG_TOKEN_STR="token"; SHORT_TOKEN_STR="k"
|
||||||
|
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# Usage
|
||||||
|
################################################################################
|
||||||
|
function printusage() {
|
||||||
|
echo "
|
||||||
|
Send a notification using the Pushbullet API.
|
||||||
|
|
||||||
|
Usage:
|
||||||
|
$(basename "$0")
|
||||||
|
[-h|--help]
|
||||||
|
[(-$SHORT_TOKEN_STR|--$LONG_TOKEN_STR) token]
|
||||||
|
(-$SHORT_TITLE_STR|--$LONG_TITLE_STR) title
|
||||||
|
(-$SHORT_MSG_STR|--$LONG_MSG_STR) message
|
||||||
|
|
||||||
|
Arguments:
|
||||||
|
-h,--help
|
||||||
|
Print this usage message.
|
||||||
|
-$SHORT_TOKEN_STR,--$LONG_TOKEN_STR
|
||||||
|
The Pushbullet API token. If not passed in from the commandline, this
|
||||||
|
value will be read from the \$PB_API_TOKEN environment variable. One or
|
||||||
|
the other must be provided.
|
||||||
|
-$SHORT_TITLE_STR,--$LONG_TITLE_STR
|
||||||
|
The title of the notification.
|
||||||
|
-$SHORT_MSG_STR,--$LONG_MSG_STR
|
||||||
|
The message body of the notification.
|
||||||
|
|
||||||
|
"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# Check that each of the required arguments has a valid value.
|
||||||
|
################################################################################
|
||||||
|
function checkForRequiredArgs() {
|
||||||
|
|
||||||
|
if [ -z $TITLE ] || [ -z $MSG ] || [ -z $TOKEN ]; then
|
||||||
|
echo "
|
||||||
|
Error: One of the required args was empty.
|
||||||
|
|
||||||
|
-$SHORT_TOKEN_STR,--$LONG_TOKEN_STR OR \$PB_API_TOKEN: $TOKEN
|
||||||
|
-$SHORT_TITLE_STR,--$LONG_TITLE_STR: $TITLE
|
||||||
|
-$SHORT_MSG_STR,--$LONG_MSG_STR: $MSG
|
||||||
|
"
|
||||||
|
printusage
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# Parse the command line arguments and populate the globals:
|
||||||
|
# $TOKEN, $TITLE, and $MSG
|
||||||
|
################################################################################
|
||||||
|
function parseArgs() {
|
||||||
|
|
||||||
|
LONG_OPTS="$LONG_TOKEN_STR:,$LONG_TITLE_STR:,$LONG_MSG_STR:,help"
|
||||||
|
SHORT_OPTS="$SHORT_TOKEN_STR:$SHORT_TITLE_STR:$SHORT_MSG_STR:h"
|
||||||
|
|
||||||
|
opts=$(getopt --longoptions "$LONG_OPTS" \
|
||||||
|
--name "$(basename "$0")" \
|
||||||
|
--options "$SHORT_OPTS" \
|
||||||
|
-- "$@" )
|
||||||
|
|
||||||
|
# If there was an error exit and print usage.
|
||||||
|
if [ $? != 0 ]; then
|
||||||
|
echo "There was an error parsing the arguments.\n"
|
||||||
|
printusage
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
eval set -- "$opts"
|
||||||
|
|
||||||
|
while [[ $# -gt 0 ]]; do
|
||||||
|
case $1 in
|
||||||
|
-$SHORT_TOKEN_STR | --$LONG_TOKEN_STR )
|
||||||
|
TOKEN="$2"
|
||||||
|
shift 2
|
||||||
|
;;
|
||||||
|
|
||||||
|
-$SHORT_TITLE_STR | --$LONG_TITLE_STR )
|
||||||
|
TITLE="$2"
|
||||||
|
shift 2
|
||||||
|
;;
|
||||||
|
|
||||||
|
-$SHORT_MSG_STR | --$LONG_MSG_STR )
|
||||||
|
MSG="$2"
|
||||||
|
shift 2
|
||||||
|
;;
|
||||||
|
|
||||||
|
-h | --help )
|
||||||
|
printusage
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
|
||||||
|
-- )
|
||||||
|
shift
|
||||||
|
break
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
break
|
||||||
|
;;
|
||||||
|
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# main body
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
parseArgs "$@"
|
||||||
|
|
||||||
|
# Pull the API token from the environment variable if it hasn't been set from
|
||||||
|
# parsing the args.
|
||||||
|
TOKEN="${TOKEN:-$PB_API_TOKEN}"
|
||||||
|
|
||||||
|
checkForRequiredArgs
|
||||||
|
|
||||||
|
# Run this comment to get pushbullet user info.
|
||||||
|
#curl -u ${TOKEN}: $USER_URL
|
||||||
|
|
||||||
|
curl -u $TOKEN: -X POST $PUSH_URL \
|
||||||
|
--header 'Content-Type: application/json' \
|
||||||
|
--data-binary '{"type": "note", "title": "'"$TITLE"'", "body": "'"$MSG"'"}'
|
||||||
|
|
||||||
Loading…
Reference in New Issue