diff --git a/fleacollar.sh b/fleacollar.sh index c6b4006..3fe4929 100755 --- a/fleacollar.sh +++ b/fleacollar.sh @@ -90,20 +90,52 @@ initialize_directory() fi # Create scripts if ! [ -f "$muttHome/scripts/add_address.sh" ]; then - cat << EOF > "$muttHome/scripts/add_address.sh" + cat << 'EOF' > "$muttHome/scripts/add_address.sh" #!/bin/bash -message=\$(cat) - -newAlias=\$(echo "\${message}" | grep ^"From: " | sed -e s/[\,\"\']//g -e s/'From: '//g | awk -F" " '{if (NF == 1) {print "alias UNNAMED UNNAMED " \$0;} else if (NF == 2) {print "alias " \$1" " toupper(substr(\$0,1,1)) tolower(substr(\$0,2));} else if (NF >= 3) {print "alias ", tolower(\$1)"-"tolower(\$(NF-1))" " toupper(substr(\$0,1,1)) tolower(substr(\$0,2));}}') -emailAddress="<\${newAlias##*<}" - -if ! grep -Fq "\$emailAddress" \$HOME/.mutt/aliases; then - echo "\$newAlias" >> \$HOME/.mutt/aliases +add_email() { + local alias="<${newAlias% *}" + local emailAddress="<${newAlias##*<}" + local ignoreList=( + 'amazon.com' + 'billing@' + 'do-not-reply' + 'donotreply' + 'github.com' + 'gitlab.com' + 'mailto' + 'noreply' + 'paypal.com' + 'walmart.com' + ) + # Do not add aliases with no alias-name + if [[ "$alias" == "UNNAMED" ]]; then + return + fi + # Try to filter out addresses that do not receive replies. + if [[ "<${emailAddress,,}" =~ ${ignoreList} ]]; then + return + fi + # Do not add the same address twice. + if grep -Fq "$emailAddress" $HOME/.mutt/aliases ; then + return + fi + # Try to not use the same alias-name + if grep -Fq " $alias " $HOME/.mutt/aliases; then + alias="${alias}-${emailAddress#*@}" + alias="${alias%.*}" + fi + if grep -Fq "$alias" $HOME/.mutt/aliases; then + return + fi + echo "$newAlias" >> $HOME/.mutt/aliases sort -u ~/.mutt/aliases -o ~/.mutt/aliases -fi +} -echo "\${message}" +message=$(cat) +newAlias=$(echo "${message}" | grep ^"From: " | sed -e s/[\,\"\']//g -e s/'From: '//g | awk -F" " '{if (NF == 1) {print "alias UNNAMED UNNAMED " $0;} else if (NF == 2) {print "alias " $1" " toupper(substr($0,1,1)) tolower(substr($0,2));} else if (NF >= 3) {print "alias ", tolower($1)"-"tolower($(NF-1))" " toupper(substr($0,1,1)) tolower(substr($0,2));}}') +add_email +echo "${message}" EOF chmod 700 "$muttHome/scripts/add_address.sh"