commit 534bb72ad5c902fea0c0635cc4a036465a55dacc
parent 6f6802313340ba7ed152f0953e1e0a1a43fbd394
Author: Luke <luke@lukesmith.xyz>
Date: Tue, 13 Feb 2018 12:50:49 -0700
folders now fully autodetected
Diffstat:
3 files changed, 30 insertions(+), 32 deletions(-)
diff --git a/autoconf/mutt_profile b/autoconf/mutt_profile
@@ -21,6 +21,3 @@ set ssl_force_tls = yes
bind index,pager g noop
bind index gg first-entry
-macro index,pager gi "<change-folder>=$spoolfile<enter>" "Go to inbox"
-macro index,pager gs "<change-folder>=$record<enter>" "Go to sent"
-macro index,pager gd "<change-folder>=$postponed<enter>" "Go to drafts"
diff --git a/detect_mailboxes.sh b/detect_mailboxes.sh
@@ -1,22 +0,0 @@
-#!/bin/sh
-muttdir="$HOME/.config/mutt/"
-
-find ~/.mail/$1 -maxdepth 1 -mindepth 1 -type d | sed -e "s/.*\///g;s/^/=/g" > /tmp/$1_boxes
-oneline=$(cat /tmp/$1_boxes | tr "\n" " ")
-sed -i "/^mailboxes/d" "$muttdir"accounts/$1.muttrc
-echo mailboxes $oneline >> "$muttdir"accounts/$1.muttrc
-
-formatShortcut() { \
- while read data; do
- echo "macro index,pager g$1 \"<change-folder>$data<enter>\" \"Go to $2.\"" >> "$muttdir"accounts/$3.muttrc
- done ;}
-
-sed -i "/^macro index,pager g/d" "$muttdir"accounts/$1.muttrc
-
-grep -vi /tmp/$1_boxes -e "trash\|drafts\|sent\|trash\|spam\|junk\|archive" | sort -n | sed 1q | formatShortcut i inbox $1
-grep -i /tmp/$1_boxes -e sent | formatShortcut s sent $1
-grep -i /tmp/$1_boxes -e trash | formatShortcut t trash $1
-grep -i /tmp/$1_boxes -e spam | formatShortcut S spam $1
-grep -i /tmp/$1_boxes -e draft | formatShortcut d drafts $1
-grep -i /tmp/$1_boxes -e archive | formatShortcut a archive $1
-
diff --git a/mutt-wizard.sh b/mutt-wizard.sh
@@ -2,24 +2,49 @@
muttdir="$HOME/.config/mutt/"
+detectWarning() { \
+ dialog --title "Mailbox detect requirement" --yesno "In order for the mailbox detection system to work, you must have
+
+1) already have added the email account with this wizard, and
+2) already have run offlineimap at least once to synchronize your mail.
+
+This detection system only works if you already have begun your first sync. If you have, press 'yes' to continue." 12 70 ;}
+
+detectSuccess() { dialog --title "Mailbox detect complete." --msgbox "The script has now smartly detected your different mailboxes and has enabled them in the sidebar and given you keyboard shortcuts as below:
+
+gi for move to the Inbox.
+gs for move to Sent Mail.
+gd for move to Drafts
+gS for move to Spam
+ga for move to the Archive.
+gj for move to Junk
+gt for move to Trash
+
+These shortcuts will only work if your email system does have that particular folder (i.e. if your email system has a Junk folder, but not a Trash folder, 'gt' will not work, etc." 20 60 ;}
+
formatShortcut() { \
while read data; do
echo "macro index,pager g$1 \"<change-folder>$data<enter>\" \"Go to $2.\"" >> "$muttdir"accounts/$3.muttrc
done ;}
-
detectMailboxes() { \
find ~/.mail/$1 -maxdepth 1 -mindepth 1 -type d | sed -e "s/.*\///g;s/^/=/g" > /tmp/$1_boxes
oneline=$(cat /tmp/$1_boxes | tr "\n" " ")
- sed -i "/^mailboxes/d" "$muttdir"accounts/$1.muttrc
+ sed -i "/^mailboxes\|^set spoolfile\|^set record\|^set postponed/d" "$muttdir"accounts/$1.muttrc
echo mailboxes $oneline >> "$muttdir"accounts/$1.muttrc
sed -i "/^macro index,pager g/d" "$muttdir"accounts/$1.muttrc
grep -vi /tmp/$1_boxes -e "trash\|drafts\|sent\|trash\|spam\|junk\|archive" | sort -n | sed 1q | formatShortcut i inbox $1
grep -i /tmp/$1_boxes -e sent | formatShortcut s sent $1
+ grep -i /tmp/$1_boxes -e draft | formatShortcut d drafts $1
grep -i /tmp/$1_boxes -e trash | formatShortcut t trash $1
grep -i /tmp/$1_boxes -e spam | formatShortcut S spam $1
- grep -i /tmp/$1_boxes -e draft | formatShortcut d drafts $1
- grep -i /tmp/$1_boxes -e archive | formatShortcut a archive $1 ;}
+ grep -i /tmp/$1_boxes -e archive | formatShortcut a archive $1
+ spoolfile=$(grep -vi /tmp/$1_boxes -e "trash\|drafts\|sent\|trash\|spam\|junk\|archive" | sort -n | sed 1q | sed -e 's/=/+/g')
+ record=$(grep -i /tmp/$1_boxes -e sent | sed -e 's/=/+/g')
+ postponed=$(grep -i /tmp/$1_boxes -e draft | sed -e 's/=/+/g')
+ echo "set spoolfile = \"$spoolfile\"" >> "$muttdir"accounts/$1.muttrc
+ echo "set record = \"$record\"" >> "$muttdir"accounts/$1.muttrc
+ echo "set postponed = \"$postponed\"" >> "$muttdir"accounts/$1.muttrc ;}
# Sees what accounts have been generated bny the wizard
# by checking ~/.offlineimap and yields a menu of them.
@@ -146,8 +171,6 @@ wipe () { rm $HOME/.offlineimaprc
rm -f "$muttdir"credentials/*gpg
rm "$muttdir"personal.muttrc ;}
-
-
while : ;
do
choice=$(dialog --title "Luke's mutt/offlineIMAP wizard" \
@@ -166,7 +189,7 @@ case $choice in
$(grep ~/.offlineimaprc -e "^accounts =" | sed 's/accounts =//g')
" 6 60;;
1) addChosen;;
-2) inventory && for i in $userchoices; do detectMailboxes $1 ; done &&exit;;
+2) detectWarning && inventory && for i in $userchoices; do detectMailboxes $i ; done && detectSuccess;;
3) inventory && for i in $userchoices; do removeAccount $i ; done;;
4) (dialog --defaultno --title "Wipe all custom neomutt/offlineIMAP settings?" --yesno "Would you like to wipe all of the mutt/offlineIMAP settings generated by the system?" 6 60 && wipe) ;;
5) clear && break