diff options
author | Luke Smith <luke@lukesmith.xyz> | 2025-02-28 09:34:51 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-02-28 09:34:51 +0000 |
commit | ed946ef98beead0c0163cbe8568daa24b3ee68b0 (patch) | |
tree | 570952f82196c76cb071c358e93e6ccc6009c8a3 /bin | |
parent | 532332b8df5dba470bfe96f95592153e303cefa3 (diff) | |
parent | 1d6dc7b8f6d299167905d02fd948c07e624ae2fb (diff) |
Merge branch 'master' into patch-1
Diffstat (limited to 'bin')
-rwxr-xr-x | bin/mailsync | 13 | ||||
-rwxr-xr-x | bin/mw | 6 |
2 files changed, 10 insertions, 9 deletions
diff --git a/bin/mailsync b/bin/mailsync index 1d403d6..4e6bfc4 100755 --- a/bin/mailsync +++ b/bin/mailsync @@ -63,16 +63,17 @@ syncandnotify() { newcount=$(echo "$new" | sed '/^\s*$/d' | wc -l) case 1 in $((newcount > 5)) ) - echo "$newcount new mail for $2." >/dev/tty - [ -z "$MAILSYNC_MUTE" ] && notify "New Mail!" "📬 $newcount new mail(s) in \`$2\` account." + echo "$newcount new mails for $2." >/dev/tty + [ -z "$MAILSYNC_MUTE" ] && notify "New Mail!" "📬 $newcount new mails in \`$2\` account." ;; $((newcount > 0)) ) - echo "$newcount new mail for $2." >/dev/tty + echo "$newcount new mail(s) for $2." >/dev/tty [ -z "$MAILSYNC_MUTE" ] && for file in $new; do - # Extract and decode subject and sender from mail. - subject="$(sed -n "/^Subject:/ s|Subject: *|| p" "$file" | - perl -CS -MEncode -ne 'print decode("MIME-Header", $_)')" + # Extract and decode subject and sender from mail. + subject=$(awk '/^Subject: / && ++n == 1,/^.*: / && ++i == 2' "$file" | head -n-1 | + perl -CS -MEncode -ne 'print decode("MIME-Header", $_)' | + sed 's/^Subject: //' | tr -d '\n\t') from="$(sed -n "/^From:/ s|From: *|| p" "$file" | perl -CS -MEncode -ne 'print decode("MIME-Header", $_)')" from="${from% *}" ; from="${from%\"}" ; from="${from#\"}" @@ -173,11 +173,11 @@ askinfo() { [ -z "$passprefix" ] && passprefix="" hostname="${fulladdr#*@}" login="${login:-$fulladdr}" - if [ -n "${password+x}" ]; then + if [ -n "${password+x}" ] && [ ! -f "$PASSWORD_STORE_DIR/$passprefix$fulladdr.gpg" ]; then insertpass - else + elif [ ! -f "$PASSWORD_STORE_DIR/$passprefix$fulladdr.gpg" ]; then getpass - fi + fi } insertpass() { |