Skip to content

Instantly share code, notes, and snippets.

@shyazusa
Last active October 7, 2016 10:20
Show Gist options
  • Save shyazusa/b9a75d0a58c5b4b10a06fb1f0246f3e5 to your computer and use it in GitHub Desktop.
Save shyazusa/b9a75d0a58c5b4b10a06fb1f0246f3e5 to your computer and use it in GitHub Desktop.
slack post script -[10分で出来る]シェルスクリプトの結果をslackに投稿 - Qiita http://qiita.com/tt2004d/items/50d79d1569c0ace118d6
#!/bin/sh
set -eu
# 設定必須
WEBHOOKURL="https://hooks.slack.com/services/XXXXXXXXX/YYYYYYYYY/abcDEFGHIJKLmnOpqrstuvwxy" # Incoming WebHooksのURL
CHANNEL=${CHANNEL:-"#general"} # 送信先チャンネル
# 設定したければしても良い
BOTNAME=${BOTNAME:-"サーバ通知くん"} # Bot名
ICON='icon_emoji' # アイコンタイプ ( icon_emoji や icon_url など)
FACEICON=":ghost:" # 上でicon_emojiをだ選んら :ghost: など. icon_url なら画像URL
MESSAGE=${MESSAGE:-"サーバよりお知らせが届いていますよ.\n"} # 最初にさ表示せる見出し的な一文 (無ければ空("")でOK)
# ここから下は弄らなくってOK
MESSAGEFILE=$(mktemp -t slack.XXXX)
trap "
rm ${MESSAGEFILE}
" 0
usage_exit() {
echo "Usage: $0 [-m message] [-c channel] [-i icon] [-n botname]" 1>&2
exit 0
}
while getopts c:i:n:m: opts
do
case $opts in
c)
CHANNEL=$OPTARG
;;
i)
FACEICON=$OPTARG
;;
n)
BOTNAME=$OPTARG
;;
m)
MESSAGE=$OPTARG"\n"
;;
\?)
usage_exit
;;
esac
done
if [ -p /dev/stdin ] ; then
cat - | tr '\n' '\\' | sed 's/\\/\\n/g' > ${MESSAGEFILE}
else
echo "nothing stdin"
exit 1
fi
WEBMESSAGE=`cat ${MESSAGEFILE}`
curl -s -S -X POST --data-urlencode "payload={\"channel\": \"${CHANNEL}\", \"username\": \"${BOTNAME}\", \"${ICON}\": \"${FACEICON}\", \"text\": \"${MESSAGE}${WEBMESSAGE}\" }" ${WEBHOOKURL} >/dev/null
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment