47 lines
1.2 KiB
Bash
Executable file
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
|