diff options
author | bnewbold <bnewbold@robocracy.org> | 2012-08-21 13:03:50 -0400 |
---|---|---|
committer | bnewbold <bnewbold@robocracy.org> | 2012-08-21 13:06:30 -0400 |
commit | 2fc0e9c1b8eeac923b2e2d8dbe574993c8417009 (patch) | |
tree | 07f14da3ba4cffa45f6554d800b8cf11a94ba3f1 /bin/ez-pine-gpg-sign | |
parent | 68d2ee91f9d1ea98d1a25e8dc0577d25edbf0c57 (diff) | |
download | openwrt-repro-2fc0e9c1b8eeac923b2e2d8dbe574993c8417009.tar.gz openwrt-repro-2fc0e9c1b8eeac923b2e2d8dbe574993c8417009.zip |
add ez-pine stuff to dotfiles
Diffstat (limited to 'bin/ez-pine-gpg-sign')
-rwxr-xr-x | bin/ez-pine-gpg-sign | 129 |
1 files changed, 129 insertions, 0 deletions
diff --git a/bin/ez-pine-gpg-sign b/bin/ez-pine-gpg-sign new file mode 100755 index 0000000..fe9a994 --- /dev/null +++ b/bin/ez-pine-gpg-sign @@ -0,0 +1,129 @@ +#!/bin/sh + +######################################################## +## ez-pine-gpg-sign ## +## part of ez-pine-gpg v0.4h // gpg filters for pine ## +## http://Business-PHP.com/opensource/ez-pine-gpg/ ## +## (c) 13 Feb 2004, Atom Emet ## +## (c) 16 Dec 2004, Atom Emet ## +## Atom {at} Business-PHP.com ## +## Distributed under the GNU General Public License ## +## http://www.gnu.org/copyleft/gpl.html ## +## ## +## ################################################ ## +## ## +## This program is free software; you can ## +## redistribute it and/or modify it under the terms ## +## of the GNU General Public License as published by ## +## the Free Software Foundation; either version 2 of ## +## the License, or (at your option) any later ## +## version. ## +## ## +## This program is distributed in the hope that it ## +## will be useful, but WITHOUT ANY WARRANTY; without ## +## even the implied warranty of MERCHANTABILITY or ## +## FITNESS FOR A PARTICULAR PURPOSE. See the GNU ## +## General Public License for more details. ## +## ## +## You should have received a copy of the GNU ## +## General Public License along with this program; ## +## if not, write to the ## +## Free Software Foundation, Inc., ## +## 59 Temple Place - Suite 330, ## +## Boston, MA 02111-1307, USA. ## +######################################################## + +######################################### +## PATH is configured during installation +PATH=/bin:/usr/bin:/home/bnewbold/bin + +################### +## clear the screen +clear 1>&2 + +###################################################### +## this compensates for an un-acknowledged bug in pine +stty -f /dev/tty echo + +############################################################### +## display notices and give the user an opportunity to bail out +## +echo '#########################################################################' 1>&2 +echo '## This message is being processed by ez-pine-gpg v0.4h ##' 1>&2 +echo '## http://Business-PHP.com/opensource/ez-pine-gpg/ ##' 1>&2 +echo '## (c) 13 Feb 2004, Atom Emet ##' 1>&2 +echo '## (c) 16 Dec 2004, Atom Emet ##' 1>&2 +echo '## Distributed under the GNU General Public License ##' 1>&2 +echo '## See source for details ##' 1>&2 +echo '## ##' 1>&2 +echo '## THIS FILTER SIGNS BUT DOES NOT ENCRYPT YOUR MESSAGE! ##' 1>&2 +echo '## ##' 1>&2 +echo '## Are you sure you want to send this message without encrypting it? ##' 1>&2 +echo '## If you want to cancel sending press ^C ##' 1>&2 +echo '#########################################################################' 1>&2 + +########################################################## +## the variable "msg" is the full headers and message body +## +msg="`cat`" + +######################################################################## +## use "ez-pine-gpg-helper-sender" to find what role is sending the mail +## +from=`echo "${msg}" | ez-pine-gpg-helper-sender` + +################################################### +## we don't need to process any more of the headers +## this assigns the body of the message to the var "body" +## +cr=`printf '\015'` +body=`echo "${msg}" | sed "1,/^${cr}\$/d"` + +########################### +## unset the "msg" variable +## +msg= + +####################################### +## function to gracefully handle errors +## if something goes wrong display an error message +## that includes the sender +## +gpg_failed () { + echo '#########################################################################' 1>&2 + echo '## Something went wrong #### See above for more info ##' 1>&2 + echo '#########################################################################' 1>&2 + echo "## Tried signing message from: ${from}" 1>&2 + echo '#########################################################################' 1>&2 + ######################################## + ## unset variables we don't need anymore + body= ; from= + ############################################################################# + ## a non-zero exit status will force pine to recognize that the script failed + ## forcing an acknowledgment here will leave diagnostic info visible to user + echo '/////////////////////// Press <ENTER> to continue ///////////////////////' 1>&2 + read dead < /dev/tty + clear 1>&2 + exit 1 +} + +########################################### +## do the right thing even if ^C is pressed +## +trap 'gpg_failed' 2 + +####################################################### +## pipe the message body into the gpg clearsign command +## pine will read the signed message from STDOUT +## +{ echo "${body}" ; echo ; } | gpg --local-user "${from}" --clearsign || gpg_failed + +############################################# +## unset variables that we don't need anymore +## +body= ; from= + +############# +## we're done +## +exit 0 |