dotfiles/.config/mail/mail-indicator.sh

47 lines
1.2 KiB
Bash
Executable file

#!/bin/env bash
# named pipe for receiving refresh events
# from mail sync script
PIPE="/tmp/email_refresh_pipe"
# COUNT="/tmp/email_count"
# Create pipe if doesn't exist
[[ -p "$PIPE" ]] || mkfifo "$PIPE"
# if [ ! -e "$COUNT" ]; then
# echo "0" > "$COUNT"
# fi
# mailboxes to monitor
MAILBOXES=("personal" "school")
# Get unread counts and format for waybar
get_unread_counts() {
for mailbox in "${MAILBOXES[@]}"; do
count=$(notmuch count --output=messages "tag:unread and path:$mailbox/**")
printf "%s: %s " "$mailbox" "$count"
done
# we print a newline to let waybar know to display
# what we just printed
printf "|\n"
}
# run once for initial output
# echo "mail init |"
# begin event loop
while true; do
# cat blocks until data comes through pipe
# redirecting to null b.c. we don't want the
# pipe's contents to be printed to stdout
PAYLOAD=$(cat /tmp/email_refresh_pipe)
if [ "$PAYLOAD" == "new" ]; then
echo "m* |"
# count=$(cat "$COUNT")
# ((count++))
# echo "$count" > "$COUNT"
# echo "new: $(cat "$COUNT") |"
# elif [ "$PAYLOAD" == "reset" ]; then
# "0" > "$COUNT"
else
get_unread_counts
fi
done