feat: do not display notification when make is not available

This commit is contained in:
Yorick Barbanneau 2024-09-24 10:24:53 +02:00
parent 318467d0c6
commit df0408c1fa

View file

@ -1,15 +1,15 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# shellcheck disable=SC2154 # shellcheck disable=SC2154
NOTIFICATION_PROGRAM='mako
'
process_args() { process_args() {
while [ "$#" -ge 2 ] while [ "$#" -ge 2 ]; do
do
printf -v "$1" "%s" "$2" printf -v "$1" "%s" "$2"
shift shift
shift shift
done done
} }
#
escape() { escape() {
local string local string
string=$1 string=$1
@ -19,10 +19,17 @@ escape(){
printf "%s" "$string" printf "%s" "$string"
} }
# Just quit this application if our notification program does not exist
# With this notification will not be displayed on my work laptop. Avoid
# notification pollution!
check_notification_program() {
if ! command -v "$NOTIFICATION_PROGRAM"; then
exit 0
fi
}
main() { main() {
options=(--app-name=cmus --transient -u low) options=(--app-name=cmus --transient -u low)
filename=${file##*/} filename=${file##*/}
path=${file%/*} path=${file%/*}
@ -41,22 +48,19 @@ main() {
fi fi
title="<b>$title</b>" title="<b>$title</b>"
if [ -n "$artist" ] if [ -n "$artist" ]; then
then
if [[ ${#artist} -gt 22 ]]; then if [[ ${#artist} -gt 22 ]]; then
artist="${artist:0:21}" artist="${artist:0:21}"
fi fi
printf -v l_artist "<span size='x-large'>by </span>%s" "$(escape "$artist")" printf -v l_artist "<span size='x-large'>by </span>%s" "$(escape "$artist")"
fi fi
if [ -n "$date" ] if [ -n "$date" ]; then
then
date="${date%%-*}" date="${date%%-*}"
fi fi
# Get Album # Get Album
if [ -n "$album" ] if [ -n "$album" ]; then
then
if [[ ${#album} -gt 19 ]]; then if [[ ${#album} -gt 19 ]]; then
album="${album:0:19}" album="${album:0:19}"
fi fi
@ -65,8 +69,9 @@ main() {
printf -v l_intro "<span variant='small-caps'>cmus:<b>%s</b></span>" "$(escape "$status")" printf -v l_intro "<span variant='small-caps'>cmus:<b>%s</b></span>" "$(escape "$status")"
printf -v body "%s\n" "${l_intro:-}" "${title:-}" "${l_artist:-}" "${l_album:-}" printf -v body "%s\n" "${l_intro:-}" "${title:-}" "${l_artist:-}" "${l_album:-}"
notify-send "${options[@]}" "unseless" "$body" notify-send "${options[@]}" "useless" "$body"
} }
check_notification_program
process_args "$@" process_args "$@"
main main