commit d5a37b7088f8bdcaf109768a2fd02c677a579a6f Spenser Truex <truex@equwal.com> 2020-09-23 21:04:04 -0700 Use PROMPT variable instead of hardcoded.
README | 14 ++++++-------- example/mail-alias | 17 +++++++++++++++++ example/mail-xclip | 2 +- prompt-mail | 8 ++++---- 4 files changed, 28 insertions(+), 13 deletions(-)
diff --git a/README b/README index 467d43a..72fd276 100644 --- a/README +++ b/README @@ -1,19 +1,17 @@ -Prompt for email +Prompt for email address using alias files. -Requires: -- dmenu -- mail alias files +Requires dmenu or another PROMPT. Installation ------------ -$ make config -$ sudo make install +$ make config && sudo make install # Edit config to point at your mail aliases file $ microsoft-word-97 ${CFG_PATH}/prompt-mail.conf Mail alias files are generated by mail programs like mutt. The format is: -alias shorthand Some Person <someperson@example.com> # optional comment +alias shorthand Short Person <shortperson@wienerdog.com> # optional comment +alias longpaw Long Cat <longperson@longcat.com> # optional comment -one alias per line +one alias per line. diff --git a/example/mail-alias b/example/mail-alias new file mode 100755 index 0000000..d6b2b0d --- /dev/null +++ b/example/mail-alias @@ -0,0 +1,17 @@ +#!/bin/sh +CONFIG=~/.config/neomutt/aliases +add_email () { + out=$(sed -ne 's/^From:[ \t]*//p' /dev/stdin) + # Ensure adding aliases is idempotent with respect to mail address. + grep -q -F -- $(echo "$out" | sed 's/^.*<// ; s/>.*$>//') ${CONFIG} + active=$? + [ $active != 0 ] && y-or-n "Add $out? " && echo "alias $(dmenu -p 'Alias shorthand? ') $out" >> ${CONFIG} +} +query () { +cat ~/.config/prompt-mail.conf \ + | sed 's/^#.*$//' \ + | xargs sed -E 's/^alias // ; s/#.*$//' \ + | grep "$1" +} +[ "$1" == "--add-email" ] && add_email </dev/stdin +[ "$1" == "--query" ] && query "$2" diff --git a/example/mail-xclip b/example/mail-xclip index 345bbc9..b07e320 100755 --- a/example/mail-xclip +++ b/example/mail-xclip @@ -1,3 +1,3 @@ #!/bin/sh -prompt-email | tr -d "\n" | xclip -i -selection clipboard +prompt-mail | tr -d "\n" | xclip -i -selection clipboard diff --git a/prompt-mail b/prompt-mail index 38d94bf..7563f75 100755 --- a/prompt-mail +++ b/prompt-mail @@ -1,9 +1,11 @@ #!/bin/sh +# edit this if you want a different prompter. +PROMPT="dmenu -i -p" verify_email () { IN=$(cat /dev/stdin) echo "$IN" | grep -q '@' && echo "$IN" && return 0 - echo "$IN Not an email." > 2 ; return 1 + echo "$IN Not an email." >/dev/stderr ; return 1 } mail_addrs () { @@ -13,7 +15,5 @@ mail_addrs () { } mail_addrs \ - | dmenu -i -p "mail address:" \ + | $PROMPT 'mail address:' \ | verify_email - -