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:
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