summaryrefslogtreecommitdiff
path: root/mutt_install.sh
diff options
context:
space:
mode:
authorLuke <luke@lukesmith.xyz>2018-02-09 23:47:29 -0700
committerLuke <luke@lukesmith.xyz>2018-02-09 23:47:29 -0700
commit914a1bf4d895a986adaa240e857b95c7f49fed4c (patch)
tree0a600d747198fe6143b9986bb71969a0ea47b243 /mutt_install.sh
initial commit
Diffstat (limited to 'mutt_install.sh')
-rwxr-xr-xmutt_install.sh80
1 files changed, 80 insertions, 0 deletions
diff --git a/mutt_install.sh b/mutt_install.sh
new file mode 100755
index 0000000..5d51810
--- /dev/null
+++ b/mutt_install.sh
@@ -0,0 +1,80 @@
+#!/bin/bash
+muttdir="$HOME/Repos/email-mutt-offline/"
+mkdir -p ~/.config/mutt/credentials
+
+# Email for GPG
+youremail=$(\
+ dialog --title "Luke's mutt/offlineIMAP password wizard" --inputbox "Insert the email address with which you originally created your key pair. This is NOT necessarily the email you want to configure." 10 60 \
+ 3>&1 1>&2 2>&3 3>&- \
+ )
+
+# Get email address
+fulladdr=$(\
+ dialog --title "Luke's mutt/offlineIMAP autoconfig" --inputbox "Insert your full email address." 10 60 \
+ 3>&1 1>&2 2>&3 3>&- \
+ )
+
+# Check to see if domain is in domain list
+serverinfo=$(cat autoconf/domains.csv | grep -w ^${fulladdr##*@})
+if [ -z "$serverinfo" ]; then echo No suitable match. && exit; fi
+
+# Read in server data as variables
+IFS=, read service imap iport smtp sport spoolfile postponed record <<EOF
+$serverinfo
+EOF
+clear
+
+realname=$(\
+ dialog --title "Luke's mutt/offlineIMAP autoconfig" --inputbox "Enter the full name you'd like to be identified by on this email account." 10 60 \
+ 3>&1 1>&2 2>&3 3>&- \
+ )
+
+title=$(\
+ dialog --title "Luke's mutt/offlineIMAP autoconfig" --inputbox "Give a short, one-word name for this email account that will differentiate it from other email accounts." 10 60 \
+ 3>&1 1>&2 2>&3 3>&- \
+ )
+
+
+# Sets the repo type and other variables for the sed regex.
+if [[ "$service" == "gmail.com" ]];
+ then
+ type="Gmail"
+ delet="remotehost"
+ else
+ type="IMAP"
+ delet="Gmail]\/"
+fi
+
+# The replacements
+replacement="
+ s/\$realname/$realname/g;
+ s/\$title/$title/g;
+ s/\$fulladdr/$fulladdr/g;
+ s/\$imap/$imap/g;
+ s/\$iport/$iport/g;
+ s/\$smtp/$smtp/g;
+ s/\$sport/$sport/g;
+ s/\$spoolfile/$spoolfile/g;
+ s/\$postponed/$postponed/g;
+ s/\$record/$record/g;
+ s/\$type/$type/g;
+ /$delet/d"
+
+
+addAccount() {
+if [ ! -f ~/.offlineimaprc ]; then cp "$muttdir"autoconf/offlineimap_header ~/.offlineimaprc; fi
+cat "$muttdir"autoconf/offlineimap_profile | sed -e "$replacement" >> ~/.offlineimaprc
+# Add the mutt profile.
+cat "$muttdir"autoconf/mutt_profile | sed -e "$replacement" > "$muttdir"accounts/$title.muttrc
+# Add on offlineimaprc sync list.
+sed -i "s/^accounts =.*[a-zA-Z]$/&, $title/g;s/^accounts =$/accounts = $title/g" ~/.offlineimaprc ;}
+
+addAccount
+
+dialog --title "Luke's mutt/offlineIMAP password wizard" --passwordbox "Enter the password for the \"$title\" account." 10 60 2> /tmp/$title
+gpg -r $youremail --encrypt /tmp/$title
+shred -u /tmp/$title && echo "Password encrypted and memory shredded."
+mv /tmp/$title.gpg ~/.config/mutt/credentials/
+
+echo Done lmao.
+exit