Compare commits

...

5 commits

Author SHA1 Message Date
Bruno BELANYI 5f1fb1c1a4 flake: bump version to v0.2.0
All checks were successful
continuous-integration/drone/push Build is passing
2021-06-16 21:14:22 +02:00
Bruno BELANYI 05ab9425dd doc: mention pandoc formatting 2021-06-16 21:14:22 +02:00
Bruno BELANYI d2b019f29d matrix-notifier: use link formatting when enabled
Make the link formatted to provide a shorter, more good-looking message.
2021-06-16 21:10:06 +02:00
Bruno BELANYI fe0de738b0 matrix-notifier: add option to disable mardown 2021-06-16 20:59:21 +02:00
Bruno BELANYI 758e4599ed matrix-notifier: add markdown rendering w/ pandoc 2021-06-16 20:42:17 +02:00
3 changed files with 36 additions and 5 deletions

View file

@ -31,4 +31,4 @@ export MESSAGE='This is my test message'
This script is packaged with `Nix`, you can just use `nix run .` to run it.
The only dependencies are `bash`, `curl`, and `jq`, install those and you should
be ready to go!
be ready to go! Format is needed when using formatting (enabled by default).

View file

@ -75,7 +75,7 @@
packages = {
matrix-notifier = pkgs.stdenvNoCC.mkDerivation rec {
pname = "matrix-notifier";
version = "0.1.2";
version = "0.2.0";
src = ./matrix-notifier;
@ -99,6 +99,7 @@
wrapperPath = with pkgs; lib.makeBinPath [
curl
jq
pandoc
];
fixupPhase = ''

View file

@ -9,6 +9,9 @@ usage() {
print_err ""
print_err " -h, --help"
print_err " print this usage screen and exit"
print_err " -f, --format"
print_err " should the message be formatted using 'pandoc'."
print_err " Must be either 'true' or 'false'."
print_err " -t, --type"
print_err " which message type should be sent must be one of"
print_err " 'text' or 'notice', or 'auto'."
@ -37,7 +40,12 @@ rawurlencode() {
default_drone_message() {
local msg="Build ${DRONE_BUILD_STATUS}"
msg="$msg ${DRONE_SYSTEM_PROTO}://${DRONE_SYSTEM_HOST}/${DRONE_REPO}/${DRONE_BUILD_NUMBER}"
local drone_url="${DRONE_SYSTEM_PROTO}://${DRONE_SYSTEM_HOST}/${DRONE_REPO}/${DRONE_BUILD_NUMBER}"
if [ "$FORMAT" == "true" ]; then
msg="$msg [${DRONE_REPO_OWNER}/${DRONE_REPO_NAME}#${DRONE_COMMIT:0:8}]($drone_url)"
else
msg="$msg $drone_url"
fi
msg="$msg (${DRONE_TAG:-$DRONE_BRANCH})"
printf '%s' "$msg"
}
@ -71,6 +79,16 @@ get_message_type() {
printf '%s' "m.$MSG_TYPE"
}
make_message_json() {
{
printf '%s' "$1" |
jq --raw-input --slurp "{msgtype: \"$(get_message_type)\", body: .}"
[ "$FORMAT" == "true" ] && printf '%s' "$1" |
pandoc |
jq --raw-input --slurp "{format: \"org.matrix.custom.html\", formatted_body: .}"
} | jq -s 'add'
}
send_message() {
local login_json
local token
@ -94,20 +112,32 @@ send_message() {
exit 1
fi
message_json="$(printf '%s' "$MESSAGE" |
jq --raw-input --slurp "{msgtype: \"$(get_message_type)\", body: .}")"
message_json="$(make_message_json "$MESSAGE")"
curl -XPOST \
-d "$message_json" \
"$ADDRESS/_matrix/client/r0/rooms/$(rawurlencode "$ROOM")/send/m.room.message?access_token=$(rawurlencode "$token")" 2>/dev/null
}
MSG_TYPE='auto'
FORMAT='true'
while [ $# -gt 0 ]; do
opt="$1"
shift
case "$opt" in
-f|--format)
arg="$1"
shift
if [ "$arg" == "true" ] || [ "$arg" == "false" ]; then
FORMAT="$arg"
continue
fi
print_err "Must give value 'true' or 'false' with '-t|--type'"
exit 1
;;
-t|--type)
arg="$1"
shift