42 lines
1.1 KiB
Bash
Executable File
42 lines
1.1 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Sync mail from ProtonMail Bridge (suppress CLOSE error)
|
|
echo "Syncing mail from ProtonMail..."
|
|
mbsync -a 2>&1 | grep -v "CLOSE"
|
|
|
|
# Index new mail (this automatically runs post-new hook)
|
|
echo "Indexing new messages..."
|
|
notmuch new
|
|
|
|
# Move all deleted messages to Trash folder
|
|
echo "Cleaning up deleted messages..."
|
|
DELETED_COUNT=0
|
|
notmuch search --output=files tag:deleted 2>/dev/null | while read filepath; do
|
|
if [ -f "$filepath" ]; then
|
|
TRASH_DIR="$HOME/.local/share/mail/Trash/cur"
|
|
mkdir -p "$TRASH_DIR"
|
|
|
|
FILENAME=$(basename "$filepath")
|
|
mv "$filepath" "$TRASH_DIR/$FILENAME"
|
|
((DELETED_COUNT++))
|
|
fi
|
|
done
|
|
|
|
# Update notmuch after moving files
|
|
if [ $DELETED_COUNT -gt 0 ]; then
|
|
echo "Moved $DELETED_COUNT message(s) to Trash"
|
|
notmuch new --no-hooks >/dev/null 2>&1
|
|
fi
|
|
|
|
# Sync moved messages back to ProtonMail
|
|
echo "Syncing changes to ProtonMail..."
|
|
mbsync -a 2>&1 | grep -v "CLOSE" >/dev/null
|
|
|
|
# Notify if new mail
|
|
NEW=$(notmuch count tag:unread)
|
|
if [ $NEW -gt 0 ]; then
|
|
notify-send "📬 Mail" "$NEW unread message(s)"
|
|
fi
|
|
|
|
echo "Sync complete: $(date)"
|