diff --git a/mw b/mw index 336ff89..c165f0a 100755 --- a/mw +++ b/mw @@ -211,31 +211,31 @@ trysync() { \ } finalize() { \ - boxes="$(ls -d "$maildir/$1/"* 2>/dev/null | sed "s/.*\///;s/^/=/")" - [ -z "$boxes" ] && printf "\033[31mNo local mailboxes have been detected for %s.\033[0m\\nThis means that offlineimap has not been successfully run.\\nRun offlineimap, and if it has an error, be sure to check your password and server settings manually if needbe.\\n" "$1" && exit - echo "$boxes" > "$tmpdir/$1_boxes" + boxes="$(ls -d "$maildir/$title/"* 2>/dev/null | sed "s/.*\///;s/^/=/")" + [ -z "$boxes" ] && printf "\033[31mNo local mailboxes have been detected for %s.\033[0m\\nThis means that offlineimap has not been successfully run.\\nRun offlineimap, and if it has an error, be sure to check your password and server settings manually if needbe.\\n" "$title" && exit + echo "$boxes" > "$tmpdir/$title_boxes" printf "Setting up the mutt sidebar...\\n" sidebar_width="$(sed -n -e '/^set sidebar_width/p' "$muttdir/muttrc" | awk -F'=' '{print $2}')" delim="$(gen_delim "$sidebar_width")" printf "Setting default mailboxes for your Inbox, Sent, Drafts and Trash in mutt...\\n" - oneline="$(sed -e "s/^\|$/\"/g" "$tmpdir/$1_boxes" | tr "\n" " ")" - oneline="=$1 $delim $oneline" - spoolfile=$(grep -i "$tmpdir/$1_boxes" -e inbox | sed -e 's/=/+/g' | sed 1q) - record=$(grep -i "$tmpdir/$1_boxes" -e sent | sed -e 's/=/+/g' | sed 1q) - postponed=$(grep -i "$tmpdir/$1_boxes" -e draft | sed -e 's/=/+/g' | sed 1q) - trash=$(grep -i "$tmpdir/$1_boxes" -e trash | sed -e 's/=/+/g' | sed 1q) - { echo "set spoolfile = \"$spoolfile\""; echo "set record = \"$record\""; echo "set postponed = \"$postponed\""; echo "set trash = \"$trash\""; } >> "$muttdir/accounts/$1.muttrc" - sed -i "/^mailboxes\|^set record\|^set postponed\|^set trash\|^set spoolfile/d" "$muttdir/accounts/$1.muttrc" - echo mailboxes "$oneline" >> "$muttdir/accounts/$1.muttrc" + oneline="$(sed -e "s/^\|$/\"/g" "$tmpdir/$title_boxes" | tr "\n" " ")" + oneline="=$title $delim $oneline" + spoolfile=$(grep -i "$tmpdir/$title_boxes" -e inbox | sed -e 's/=/+/g' | sed 1q) + record=$(grep -i "$tmpdir/$title_boxes" -e sent | sed -e 's/=/+/g' | sed 1q) + postponed=$(grep -i "$tmpdir/$title_boxes" -e draft | sed -e 's/=/+/g' | sed 1q) + trash=$(grep -i "$tmpdir/$title_boxes" -e trash | sed -e 's/=/+/g' | sed 1q) + { echo "set spoolfile = \"$spoolfile\""; echo "set record = \"$record\""; echo "set postponed = \"$postponed\""; echo "set trash = \"$trash\""; } >> "$muttdir/accounts/$title.muttrc" + sed -i "/^mailboxes\|^set record\|^set postponed\|^set trash\|^set spoolfile/d" "$muttdir/accounts/$title.muttrc" + echo mailboxes "$oneline" >> "$muttdir/accounts/$title.muttrc" printf "Setting up your keyboard shortcuts for jumping between mailboxes...\\n" - sed -i "/# autogenerated/d" "$muttdir/accounts/$1.muttrc" - grep -i "$tmpdir/$1_boxes" -e inbox | sed 1q | formatShortcut i inbox "$1" - grep -i "$tmpdir/$1_boxes" -e sent | sed 1q | formatShortcut s sent "$1" - grep -i "$tmpdir/$1_boxes" -e draft | sed 1q | formatShortcut d drafts "$1" - grep -i "$tmpdir/$1_boxes" -e trash | sed 1q | formatShortcut t trash "$1" - grep -i "$tmpdir/$1_boxes" -e spam | sed 1q | formatShortcut S spam "$1" - grep -i "$tmpdir/$1_boxes" -e junk | sed 1q | formatShortcut j junk "$1" - grep -i "$tmpdir/$1_boxes" -e archive | sed 1q | formatShortcut a archive "$1" + sed -i "/# autogenerated/d" "$muttdir/accounts/$title.muttrc" + grep -i "$tmpdir/$title_boxes" -e inbox | sed 1q | formatShortcut i inbox "$title" + grep -i "$tmpdir/$title_boxes" -e sent | sed 1q | formatShortcut s sent "$title" + grep -i "$tmpdir/$title_boxes" -e draft | sed 1q | formatShortcut d drafts "$title" + grep -i "$tmpdir/$title_boxes" -e trash | sed 1q | formatShortcut t trash "$title" + grep -i "$tmpdir/$title_boxes" -e spam | sed 1q | formatShortcut S spam "$title" + grep -i "$tmpdir/$title_boxes" -e junk | sed 1q | formatShortcut j junk "$title" + grep -i "$tmpdir/$title_boxes" -e archive | sed 1q | formatShortcut a archive "$title" printf "All done.\\n" } @@ -243,11 +243,14 @@ finalize() { \ [ -z "$gpgemail" ] && askgpg -select() { \ +pick() { \ grep "^accounts *=" "$HOME/.config/offlineimap/config" | sed 's/accounts *= *//g;s/,/ /g;s/ \+/\n/g' | nl > "$tmpdir/numbered" cat "$tmpdir/numbered" print "Select (an) account(s) to %s.\\n" "$1" read -r input + title="$(cat "$tmpdir/numbered" | grep "$input" | awk '{print $2}')" + [ -z "$title" ] && printf "Invalid response." && exit 1 + [ ! -z "$2" ] && printf "Are you sure you want to %s the \`%s\` account?" "$1" "$title" && read -r input && echo "$input" | grep -i "y\(es\)*" >/dev/null } removeAccount() { sed -ie " @@ -275,7 +278,7 @@ Input a number to continue or press ctrl-c.\\n" read -r choice case "$choice" in 1) addaccount ;; - 2) finalize ;; + 2) pick delete yes && finalize "$title" ;; 0) break ;; *) printf "Invalid input.\\n" esac