mailbox wizard added
This commit is contained in:
		
							
								
								
									
										22
									
								
								detect_mailboxes.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								detect_mailboxes.sh
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,22 @@ | |||||||
|  | #!/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 | ||||||
|  |  | ||||||
| @@ -2,6 +2,25 @@ | |||||||
|  |  | ||||||
| muttdir="$HOME/.config/mutt/" | muttdir="$HOME/.config/mutt/" | ||||||
|  |  | ||||||
|  | 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 | ||||||
|  | 	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 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 ;} | ||||||
|  |  | ||||||
| # Sees what accounts have been generated bny the wizard | # Sees what accounts have been generated bny the wizard | ||||||
| # by checking ~/.offlineimap and yields a menu of them. | # by checking ~/.offlineimap and yields a menu of them. | ||||||
| inventory() { \ | inventory() { \ | ||||||
| @@ -132,12 +151,13 @@ wipe () { rm $HOME/.offlineimaprc | |||||||
| while : ; | while : ; | ||||||
| 	do | 	do | ||||||
| choice=$(dialog --title "Luke's mutt/offlineIMAP wizard" \ | choice=$(dialog --title "Luke's mutt/offlineIMAP wizard" \ | ||||||
| 	--menu "What would you like to do?" 14 45 5 \ | 	--menu "What would you like to do?" 13 45 6 \ | ||||||
| 	0 "List all email accounts configured." \ | 	0 "List all email accounts configured." \ | ||||||
| 	1 "Add an email account." \ | 	1 "Add an email account." \ | ||||||
| 	2 "Remove an email account." \ | 	2 "Auto-detect mailboxes for an account." \ | ||||||
| 	3 "Remove all email accounts." \ | 	3 "Remove an email account." \ | ||||||
| 	4 "Exit this wizard." \ | 	4 "Remove all email accounts." \ | ||||||
|  | 	5 "Exit this wizard." \ | ||||||
| 	 3>&1 1>&2 2>&3 3>&1 ) | 	 3>&1 1>&2 2>&3 3>&1 ) | ||||||
|  |  | ||||||
|  |  | ||||||
| @@ -146,8 +166,9 @@ case $choice in | |||||||
| $(grep ~/.offlineimaprc -e "^accounts =" | sed 's/accounts =//g') | $(grep ~/.offlineimaprc -e "^accounts =" | sed 's/accounts =//g') | ||||||
| " 6 60;; | " 6 60;; | ||||||
| 1) addChosen;; | 1) addChosen;; | ||||||
| 2) inventory && for i in $userchoices; do removeAccount $i ; done;; | 2) inventory && for i in $userchoices; do detectMailboxes $1 ; done &&exit;; | ||||||
| 3) (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) ;; | 3) inventory && for i in $userchoices; do removeAccount $i ; done;; | ||||||
| 4) clear && break | 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 | ||||||
| esac | esac | ||||||
| done | done | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user