mutt-wizard

fork of Luke Smiths mutt-wizard
git clone git://git.jakekoroman.com/mutt-wizard
Log | Files | Refs | README | LICENSE

commit 85c5d01dcd09058094a8a180c38751e88416b1f4
parent 418565eb94b8d95bb790357afbcf2784511573b5
Author: Luke Smith <luke@lukesmith.xyz>
Date:   Wed,  6 Oct 2021 22:51:30 -0400

mw -r to reorder account numbers

Diffstat:
MREADME.md | 1+
Mbin/mw | 24+++++++++++++++++++++++-
Mmw.1 | 3+++
3 files changed, 27 insertions(+), 1 deletion(-)

diff --git a/README.md b/README.md @@ -79,6 +79,7 @@ The mutt-wizard runs via the command `mw`. Once setup is complete, you'll use - `mw -D your@email.com` -- delete account settings without confirmation - `mw -t 30` -- toggle automatic mailsync to every 30 minutes - `mw -T` -- toggle mailsync without specifying minutes (default is 10) +- `mw -r` -- reorder account shortcut numbers - `pass edit mw-your@email.com` -- revise an account's password ### Options usable when adding an account diff --git a/bin/mw b/bin/mw @@ -285,6 +285,7 @@ Main actions: -Y Sync mail for all accounts -t number Toggle automatic mailsync every <number> minutes -T Toggle automatic mailsync + -r Reorder account numbers Options allowed with -a: -u Account login name if not full address @@ -307,8 +308,28 @@ To change an account's password, run \`pass edit your@email.com\`. EOF } -while getopts "fpPXlhodTYD:y:i:I:s:S:u:a:n:x:m:t:" o; do case "${o}" in +reorder(){ + tempfile="$(mktemp -u)" + trap 'rm -f $tempfile' HUP INT QUIT TERM PWR EXIT + echo "# Carefully reorder these accounts with the desired numbers." > "$tempfile" + sed -n " + / i[0-9] / s?\(.* i\|'<sync.*/\|\.muttrc.*\)??g p + " "$muttrc" > "$tempfile" + ${EDITOR:-vim} "$tempfile" || exit 1 + default="$(sort -n "$tempfile" | head -n 1)" + default="${default#* }" + sed -ibu "/.* i[0-9] .*.muttrc/d" "$muttrc" 2>/dev/null; rm -f "$muttrc"bu + awk -v a="$accdir" -v d="$default" ' BEGIN { print "source "a"/"d".muttrc" } + { + print "macro index,pager i"$1" '\''<sync-mailbox><enter-command>source "a"/"$2".muttrc<enter><change-folder>!<enter>;<check-stats>'\'' \"switch to "$2"\"" + } + ' "$tempfile" >> "$muttrc" + +} + +while getopts "rfpPXlhodTYD:y:i:I:s:S:u:a:n:x:m:t:" o; do case "${o}" in l) setact list || exit 1 ;; + r) setact reorder || exit 1 ;; d) setact delete || exit 1 ;; D) setact delete || exit 1 ; fulladdr="$OPTARG" ;; y) setact sync || exit 1 ; fulladdr="$OPTARG" ;; @@ -347,5 +368,6 @@ case "$action" in delete) delete ;; sync) mailsync $fulladdr ;; toggle) togglecron ;; + reorder) reorder ;; *) mwinfo; exit 1 ;; esac diff --git a/mw.1 b/mw.1 @@ -41,6 +41,9 @@ toggle a cronjob that syncs your mail every 15 minutes (or any other number unde .TP .B -T toggle a cronjob without specifying minutes between sync +.TP +.B -r +reorder account shortcut numbers .SH OPTIONS FOR ADDING ACCOUNTS These can be specified on the command line, otherwise, you will be prompted for what is necessary. mutt-wizard knows the IMAP/SMTP server information for most email providers, so specifying them is usually redundant. .TP