diff options
| -rwxr-xr-x | bin/mw | 31 | 
1 files changed, 17 insertions, 14 deletions
| @@ -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 $msmtplog  "  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 |