#!/usr/bin/zsh #Usage: cat HEADERS-USENET-POST | b #Changes headers for an incoming Usenet post to their corresponding # outgoing forms. #(C)opyright 2004,2007 J.H.Boersema #Released under the provisions of the GNU GPL3 License. #This is free software, no warranty whatsoever. Use at your own risk. #Organization: header #anything ORG="YOUR-ORG" #ORG="" #From: header #slrn uses e-mail address to verify cancel message, use same as in ~/.slrnrc FROM="\"Name\" " #FROM="" #Reply-To: header #anything REPLY="email@address.net" #REPLY="" #Temp-files TMPFILE_A="/tmp/${USER}-${$}-tmpa" TMPFILE_B="/tmp/${USER}-${$}-tmpb" TMPFILE_C="/tmp/${USER}-${$}-tmpc" #read pipe tee > "${TMPFILE_A}" egrep '^Newsgroups: ' "${TMPFILE_A}" >"${TMPFILE_B}" egrep '^Subject: ' "${TMPFILE_A}" | egrep -v '^Subject: [rR]e: ' | sed -e 's/^Subject: /Subject: Re: /' >>"${TMPFILE_B}" egrep '^Subject: [Rr]e: ' "${TMPFILE_A}" >>"${TMPFILE_B}" #---------------------------references---------------------- REF="0" REF=$( egrep '^References: ' "${TMPFILE_A}" | wc -c ) if test "0" -eq "${REF}" then egrep -i '^Message-Id: ' "${TMPFILE_A}" |sed 's/^.*: /References: /;' >>"${TMPFILE_B}" else egrep '^References: ' "${TMPFILE_A}" >>"${TMPFILE_B}" egrep -i '^Message-Id: ' "${TMPFILE_A}" |sed 's/^.*: //;' >>"${TMPFILE_B}" echo '$ s/^/ / - j w q'| ed -s "${TMPFILE_B}" >/dev/null fi #-------------------------------------------------------------------- echo "Organization: ${ORG}" >>"${TMPFILE_B}" echo "From: ${FROM}" >>"${TMPFILE_B}" echo "Reply-To: ${REPLY}" >>"${TMPFILE_B}" echo -n "" >"${TMPFILE_C}" egrep '^Subject: ' "${TMPFILE_B}" | grep -v 'Re:' | sed -e 's/^Subject/ !!!!!!!! (No Re:) Subject/;' >> "${TMPFILE_C}" egrep '^Subject: ' "${TMPFILE_B}" | grep 'References' | sed -e 's/^Subject/ !!!!!!!! (References in Subject:) Subject/;' >> "${TMPFILE_C}" egrep '^Subject: ' "${TMPFILE_B}" | grep 'Message-ID' | sed -e 's/^Subject/ !!!!!!!! (Message-ID in Subject:) Subject/;' >> "${TMPFILE_C}" egrep '^References: ' "${TMPFILE_B}" | wc -l |grep -v '1'|sed -e 's/^ *//;s/0/ !!!!!!!! (No References: header found)/;' >>"${TMPFILE_C}" egrep '^Subject: ' "${TMPFILE_B}" | grep '<.*>' |sed -e 's/^Subject/ ->?????? (<.*> in Subject) Subject/;' >> "${TMPFILE_C}" echo >>"${TMPFILE_B}" egrep '^From: ' "${TMPFILE_A}" |sed 's/^From: //;s/$/ wrote:/;' >>"${TMPFILE_B}" cat "${TMPFILE_C}" "${TMPFILE_B}" #clean rm "${TMPFILE_A}" "${TMPFILE_B}" "${TMPFILE_C}"