]> git.proxmox.com Git - mirror_acme.sh.git/blob - notify/teams.sh
fix: remove :xdigit:
[mirror_acme.sh.git] / notify / teams.sh
1 #!/usr/bin/env sh
2
3 #Support Microsoft Teams webhooks
4
5 #TEAMS_WEBHOOK_URL=""
6 #TEAMS_THEME_COLOR=""
7 #TEAMS_SUCCESS_COLOR=""
8 #TEAMS_ERROR_COLOR=""
9 #TEAMS_SKIP_COLOR=""
10
11 teams_send() {
12 _subject="$1"
13 _content="$2"
14 _statusCode="$3" #0: success, 1: error 2($RENEW_SKIP): skipped
15 _debug "_statusCode" "$_statusCode"
16
17 TEAMS_WEBHOOK_URL="${TEAMS_WEBHOOK_URL:-$(_readaccountconf_mutable TEAMS_WEBHOOK_URL)}"
18 if [ -z "$TEAMS_WEBHOOK_URL" ]; then
19 TEAMS_WEBHOOK_URL=""
20 _err "You didn't specify a Microsoft Teams webhook url TEAMS_WEBHOOK_URL yet."
21 return 1
22 fi
23 _saveaccountconf_mutable TEAMS_WEBHOOK_URL "$TEAMS_WEBHOOK_URL"
24
25 TEAMS_THEME_COLOR="${TEAMS_THEME_COLOR:-$(_readaccountconf_mutable TEAMS_THEME_COLOR)}"
26 if [ -n "$TEAMS_THEME_COLOR" ]; then
27 _saveaccountconf_mutable TEAMS_THEME_COLOR "$TEAMS_THEME_COLOR"
28 fi
29
30 TEAMS_SUCCESS_COLOR="${TEAMS_SUCCESS_COLOR:-$(_readaccountconf_mutable TEAMS_SUCCESS_COLOR)}"
31 if [ -n "$TEAMS_SUCCESS_COLOR" ]; then
32 _saveaccountconf_mutable TEAMS_SUCCESS_COLOR "$TEAMS_SUCCESS_COLOR"
33 fi
34
35 TEAMS_ERROR_COLOR="${TEAMS_ERROR_COLOR:-$(_readaccountconf_mutable TEAMS_ERROR_COLOR)}"
36 if [ -n "$TEAMS_ERROR_COLOR" ]; then
37 _saveaccountconf_mutable TEAMS_ERROR_COLOR "$TEAMS_ERROR_COLOR"
38 fi
39
40 TEAMS_SKIP_COLOR="${TEAMS_SKIP_COLOR:-$(_readaccountconf_mutable TEAMS_SKIP_COLOR)}"
41 if [ -n "$TEAMS_SKIP_COLOR" ]; then
42 _saveaccountconf_mutable TEAMS_SKIP_COLOR "$TEAMS_SKIP_COLOR"
43 fi
44
45 export _H1="Content-Type: application/json"
46
47 _subject=$(echo "$_subject" | _json_encode)
48 _content=$(echo "$_content" | _json_encode)
49
50 case "$_statusCode" in
51 0)
52 _color="$TEAMS_SUCCESS_COLOR"
53 ;;
54 1)
55 _color="$TEAMS_ERROR_COLOR"
56 ;;
57 2)
58 _color="$TEAMS_SKIP_COLOR"
59 ;;
60 esac
61 _color="$(echo "${_color:-$TEAMS_THEME_COLOR}" | tr -cd 'a-fA-F0-9')"
62
63 _data="{\"title\": \"$_subject\","
64 if [ -n "$_color" ]; then
65 _data="$_data\"themeColor\": \"$_color\", "
66 fi
67 _data="$_data\"text\": \"$_content\"}"
68
69 if _post "$_data" "$TEAMS_WEBHOOK_URL"; then
70 # shellcheck disable=SC2154
71 if ! _contains "$response" error; then
72 _info "teams send success."
73 return 0
74 fi
75 fi
76 _err "teams send error."
77 _err "$response"
78 return 1
79 }