#!/usr/bin/env bash _PLUG_TITLE="ntfy Helper" _PLUG_DESCRIPTION="" _PLUG_ARGS=( "message;m;;string;(No Message)" "title;t;;string;(No Title)" "level;l;;string;info" "invoked-by;i;;string" ) function get_cache_header() { topic="$1" if [[ "$topic" == "zio_test" ]]; then echo "" else echo "Cache: no" fi } function get_level_emoji() { case "$1" in "critical"|"error") echo "⛔" ;; "warning") echo "⚠️" ;; "success") echo "✅" ;; "info") echo "ℹ️" ;; "debug"|*) echo "🔧" ;; esac } function get_level_priority() { case "$1" in "critical") echo "5" ;; "error") echo "4" ;; "warning") echo "4" ;; "success") echo "3" ;; "info") echo "2" ;; "debug"|*) echo "1" ;; esac } function get_topic() { invoked_by="$1" topic_prefix="zio" topic="test" if [[ -n "$invoked_by" ]]; then topic="$(echo "$invoked_by" | sed -r 's/sh.zio.//g' | sed -r 's/[.]+/-/g')" fi echo "${topic_prefix}_$topic" } function main() { token_path="$(get_config_dir "sh.zio.notify")/token" [[ ! -f "$token_path" ]] && die "'$token_path' does not exist" token="$(cat "$token_path")" hostname="$(hostname -s)" invoked_by="$_invoked_by" level_emoji="$(get_level_emoji "$_level")" n_message="$_message" n_priority="$(get_level_priority "$_level")" n_title="$level_emoji [$hostname] $_title" n_topic="$(get_topic "$_invoked_by")" body='{ "message": "'$n_message'", "priority": '$n_priority', "tags": ["'$hostname'", "'$invoked_by'"], "title": "'$n_title'", "topic": "'$n_topic'" }' curl -d "$body" \ -H "Authorization: Bearer $token" \ -H "$(get_cache_header "$n_topic")" \ -H "Markdown: yes" \ "https://ntfy.zio.sh/" } if [[ $_PLUG_INVOKED != "true" ]]; then base_dir="$(dirname "$(realpath -s "$0")")" git_dir="$base_dir/../../.." if [[ -d "$git_dir/.git" ]]; then . "$git_dir/usr/local/libexec/zio/helpers/bash.sh" else . "/usr/local/libexec/zio/helpers/bash.sh" fi export -f get_config_dir if [[ -d "$git_dir/.git" ]]; then "$git_dir/usr/local/libexec/sodalite/invoker/src/invoke.sh" "$0" $@ else "/usr/local/libexec/sodalite/invoker/src/invoke.sh" "$0" $@ fi fi