@@ -10,18 +10,20 @@ command -V gpg >/dev/null 2>&1 && GPG="gpg" || GPG="gpg2"
! command -v mbsync >/dev/null && printf "\`mbsync (isync package)\` must be installed to run mutt-wizard.\\n" && exit
prefix="/usr/local"
muttdir="$HOME/.config/mutt" # Main mutt config location
accdir="$muttdir/accounts" # Directory for account settings
maildir="$HOME/.local/share/mail" # Location of mail storage
namere="^[a-z_][a-z0-9_-]*$" # Regex to ensure viable username
emailre=".+@.+\..+" # Regex to confirm valid email address
muttdir="${XDG_CONFIG_HOME:-$ HOME/.config} /mutt" # Main mutt config location
accdir="$muttdir/accounts" # Directory for account settings
maildir="${XDG_DATA_HOME:-$ HOME/.local/share} /mail" # Location of mail storage
namere="^[a-z_][a-z0-9_-]*$" # Regex to ensure viable username
emailre=".+@.+\..+" # Regex to confirm valid email address
muttshare="$prefix/share/mutt-wizard"
mbsyncrc="$HOME/.mbsyncrc"
mbsyncrc="${MBSYNCRC:-$ HOME/.mbsyncrc} "
mwconfig="$muttshare/mutt-wizard.muttrc"
cachedir="$HOME/.cache/mutt-wizard"
cachedir="${XDG_CACHE_HOME:-$ HOME/.cache} /mutt-wizard"
muttrc="$muttdir/muttrc"
msmtprc="$HOME/.config/msmtp/config"
msmtprc="${XDG_CONFIG_HOME:-$HOME/.config}/msmtp/config"
msmtplog="${XDG_CONFIG_HOME:-$HOME/.config}/msmtp/msmtp.log"
ssltype="IMAPS" # This is later changed to `None` later in the script if using Protonmail
alias mbsync='mbsync -c "$mbsyncrc"'
for x in "/etc/ssl/certs/ca-certificates.crt" "/etc/pki/tls/certs/ca-bundle.crt" "/etc/ssl/ca-bundle.pem" "/etc/pki/tls/cacert.pem" "/etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem" "/etc/ssl/cert.pem" "/usr/local/share/ca-certificates/"
do
@@ -38,7 +40,7 @@ msmtp_header="defaults
auth on
tls on
tls_trust_file $sslcert
logfile ~/.config/msmtp/msmtp. log
logfile $msmtp log
"
msmtp_profile="account $title
host $smtp
@@ -59,8 +61,8 @@ CertificateFile $sslcert
MaildirStore $title-local
Subfolders Verbatim
Path ~/.local/share /mail/$title/
Inbox ~/.local/share /mail/$title/INBOX
Path ${XDG_DATA_HOME:-$HOME/.local/share} /mail/$title/
Inbox ${XDG_DATA_HOME:-$HOME/.local/share} /mail/$title/INBOX
Flatten .
Channel $title
@@ -192,7 +194,7 @@ EOF
echo "$maxmes" | grep "[1-9]" >/dev/null || maxmes="0"
getpass
getprofiles
mkdir -p "$muttdir" "$accdir" "$cachedir/$title/bodies" "$HOME/.config/msmtp"
mkdir -p "$muttdir" "$accdir" "$cachedir/$title/bodies" "${XDG_CONFIG_HOME:-$ HOME/.config} /msmtp"
getaccounts
for x in $(seq 1 9); do echo "$accounts" | grep "$x" >/dev/null 2>&1 || { export idnum="$x"; break ;}; done
[ ! -f "$msmtprc" ] && echo "$msmtp_header" > "$msmtprc"
@@ -202,6 +204,7 @@ EOF
protonmail.ch|protonmail.com|pm.me) protonfinger || return 1 ;;
esac
echo "$mutt_profile" > "$accdir/$idnum-$title.muttrc"
mkdir -p "${mbsyncrc%/*}"
echo "$mbsync_profile" >> "$mbsyncrc"
notmuchauto
[ ! -f "$muttrc" ] && echo "# vim: filetype=neomuttrc" > "$muttrc" && echo "muttrc created."
@@ -288,7 +291,7 @@ asktype() { while : ; do
esac; done ;}
purge() { confirm "delete all account data" || exit
rm -rf "$mbsyncrc" "$accdir" "$HOME/.config/msmtp" "$cachedir"
rm -rf "$mbsyncrc" "$accdir" "${XDG_CONFIG_HOME:-$ HOME/.config} /msmtp" "$cachedir"
echo "All configs and account settings have been purged."
sed -ibu "/\# mw-autogenerated/d" "$muttrc" ; rm -f "$muttrc"bu
}
@@ -326,7 +329,7 @@ case "$1" in
add) asktype && askinfo && tryconnect && finalize || delete ;;
pass) pick "change the password of" && getpass ;;
delete) pick delete && confirm "delete the \`$title\` profile" && delete ;;
sync) syncwrapper $2 ;;
sync) syncwrapper " $2" ;;
purge) purge ;;
*) cat << EOF
mw: mutt-wizard, auto-configure email accounts for mutt