#!/bin/bash #Use ./gotifypush <message> <priority> <token> <clickurl> # Gotify notification parameters TITLE=$1 MESSAGE=$2 PRIORITY=$3 URL="$E7S_GOTIFY_SERVER_URL/message?token=$4" #if url passed by parameter, set to extras if [ -n "$5" ] then EXTRAS="{\"client::display\": {\"contentType\": \"text/markdown\"}, \"client::notification\": {\"click\": { \"url\": \"$5\"}}}" else EXTRAS="{\"client::display\": {\"contentType\": \"text/markdown\"}}" fi # prevent gotify post error: invalid character '\\n' in string literal # scape \\n newlines for json # https://unix.stackexchange.com/questions/453883/how-to-escape-new-line-characters-for-json # MESSAGE=$(echo "$MESSAGE" | sed -z 's/\n/\\n/g') # better curl usage https://github.com/gotify/server/issues/68 #curl --silent --output /dev/null --show-error --fail -X .... #silent curl execution, no output, only html code if error curl -X POST "${URL}" -H "accept: application/json" -H "Content-Type: application/json" -d "{ \"message\": \"${MESSAGE}\", \"priority\": ${PRIORITY}, \"title\": \"${TITLE}\", \"extras\": ${EXTRAS} }"