Browse Source

add slack notify

Honza Hommer 6 years ago
parent
commit
73bbe25d26
1 changed files with 23 additions and 8 deletions
  1. 23 8
      notify/slack.sh

+ 23 - 8
notify/slack.sh

@@ -3,6 +3,8 @@
 #Support Slack webhooks
 #Support Slack webhooks
 
 
 #SLACK_WEBHOOK_URL=""
 #SLACK_WEBHOOK_URL=""
+#SLACK_CHANNEL=""
+#SLACK_USERNAME=""
 
 
 slack_send() {
 slack_send() {
   _subject="$1"
   _subject="$1"
@@ -18,23 +20,36 @@ slack_send() {
   fi
   fi
   _saveaccountconf_mutable SLACK_WEBHOOK_URL "$SLACK_WEBHOOK_URL"
   _saveaccountconf_mutable SLACK_WEBHOOK_URL "$SLACK_WEBHOOK_URL"
 
 
-  export _H1="Content-Type: application/json"
+  SLACK_CHANNEL="${SLACK_CHANNEL:-$(_readaccountconf_mutable SLACK_CHANNEL)}"
+  if [ -n "$SLACK_CHANNEL" ]; then
+    _saveaccountconf_mutable SLACK_CHANNEL "$SLACK_CHANNEL"
+  fi
+
+  SLACK_USERNAME="${SLACK_USERNAME:-$(_readaccountconf_mutable SLACK_USERNAME)}"
+  if [ -n "$SLACK_USERNAME" ]; then
+    _saveaccountconf_mutable SLACK_USERNAME "$SLACK_USERNAME"
+  fi
 
 
-  _content="$(echo "$_subject: $_content" | _json_encode)"
-  _data="{\"text\": \"$_content\"}"
+  export _H1="Content-Type: application/json"
 
 
-echo "$_content"
-echo "$_data"
+  _content="$(printf "*%s*\n%s" "$_subject" "$_content" | _json_encode)"
+  _data="{\"text\": \"$_content\", "
+  if [ -n "$SLACK_CHANNEL" ]; then
+    _data="$_data\"channel\": \"$SLACK_CHANNEL\", "
+  fi
+  if [ -n "$SLACK_USERNAME" ]; then
+    _data="$_data\"username\": \"$SLACK_USERNAME\", "
+  fi
+  _data="$_data\"mrkdwn\": \"true\"}"
 
 
   if _post "$_data" "$SLACK_WEBHOOK_URL"; then
   if _post "$_data" "$SLACK_WEBHOOK_URL"; then
     # shellcheck disable=SC2154
     # shellcheck disable=SC2154
-    if [ -z "$response" ]; then
-      _info "slack send sccess."
+    if [ "$response" = "ok" ]; then
+      _info "slack send success."
       return 0
       return 0
     fi
     fi
   fi
   fi
   _err "slack send error."
   _err "slack send error."
   _err "$response"
   _err "$response"
   return 1
   return 1
-
 }
 }