@@ -198,7 +198,7 @@ askinfo() { \
read -r smtp
[ "$sport" = 587 ] && tlsline="# tls_starttls"
[ -z "$realname" ] && realname="${fulladdr%%@*}"
hostname="$(echo "$fulladdr" | cut -d @ -f 2) "
hostname="${fulladdr#*@} "
login="${login:-$fulladdr}"
if [ -n "${password+x}" ]; then
createpass
@@ -222,9 +222,9 @@ getboxes() { if [ -n "${force+x}" ] ; then
mailboxes="$(echo "$info" | grep -v HasChildren | sed "s/.*\" //;s/\"//g" | tr -d '\r')"
fi
[ "$type" = "pop" ] && mailboxes="INBOX"
for x in $(sed -n "/^macro.* i[0-9] / s/\(^macro.* i\| .*\)//gp " $muttrc | sort -u; echo 0); do
for x in $(sed -n "/^macro.* i[0-9] / s/\(^macro.* i\| .*\)//gp " " $muttrc" | sort -u; echo 0); do
idnum=$((idnum + 1))
[ $idnum -eq $x ] || break
[ " $idnum" -eq " $x" ] || break
done
toappend="mailboxes \`mdir=$maildir/$fulladdr/; find \$mdir -mindepth 1 -type d -name cur | sed -e 's:/cur\$:\":' -e \"s:\$mdir:\\\"=:\" | sort | tr '\\\n' ' '\`"
}
@@ -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" ;;
@@ -335,7 +356,7 @@ while getopts "fpPXlhodTYD:y:i:I:s:S:u:a:n:x:m:t:" o; do case "${o}" in
smtp="127.0.0.1"
sport="1025"
auth="login"
tlsline="tls_fingerprint $(msmtp --serverinfo --host=$smtp --port=$sport --tls --tls-certcheck=off | awk '/SHA256:/ {print $2} ')"
tlsline="tls_fingerprint $(msmtp --serverinfo --host=$smtp --port=$sport --tls --tls-certcheck=off | sed -n '/SHA256:/ s/^\s*SHA256:\s*// p ')"
setact add || exit 1
;;
*) mwinfo; exit 1 ;;
@@ -347,5 +368,6 @@ case "$action" in
delete) delete ;;
sync) mailsync $fulladdr ;;
toggle) togglecron ;;
reorder) reorder ;;
*) mwinfo; exit 1 ;;
esac