|
|
1.1 ! root 1: case $CONFIG in ! 2: '') . config.sh ;; ! 3: esac ! 4: echo "Extracting Rnmail (with variable substitutions)" ! 5: $spitshell >Rnmail <<!GROK!THIS! ! 6: $startsh ! 7: # $Header: Rnmail.SH,v 4.3.1.3 85/05/20 16:25:17 lwall Exp $ ! 8: # ! 9: # $Log: Rnmail.SH,v $ ! 10: # Revision 4.3.1.3 85/05/20 16:25:17 lwall ! 11: # Shouldn't ask editor if EDITOR or VISUAL defined. ! 12: # ! 13: # Revision 4.3.1.2 85/05/17 10:36:19 lwall ! 14: # Added "-- " before .signature. ! 15: # ! 16: # Revision 4.3.1.1 85/05/10 11:30:38 lwall ! 17: # Branch for patches. ! 18: # ! 19: # Revision 4.3 85/05/01 11:34:18 lwall ! 20: # Baseline for release with 4.3bsd. ! 21: # ! 22: # ! 23: # syntax: Rnmail -h headerfile [oldart] or ! 24: # Rnmail destination-list or just ! 25: # Rnmail ! 26: ! 27: export PATH || (echo "OOPS, this isn't sh. Desperation time. I will feed myself to sh."; sh \$0; kill \$\$) ! 28: ! 29: # System dependencies ! 30: ! 31: mailer="${mailer-/bin/mail}" ! 32: # if you change this to something that does signatures, take out signature code ! 33: ! 34: # your site name ! 35: case $portable in ! 36: define) sitename=\`$hostcmd\` ;; ! 37: undef) sitename="$sitename" ;; ! 38: esac ! 39: # your organization name ! 40: orgname="$orgname" ! 41: # what pager you use--if you have kernal paging use cat ! 42: pager="\${PAGER-$pager}" ! 43: # how you derive full names, bsd, usg, or other ! 44: nametype="$nametype" ! 45: # default editor ! 46: defeditor="$defeditor" ! 47: # how not to do a newline with echo ! 48: n="$n" ! 49: c="$c" ! 50: ! 51: test=${test-test} ! 52: sed=${sed-sed} ! 53: echo=${echo-echo} ! 54: cat=${cat-cat} ! 55: grep=${grep-grep} ! 56: rm=${rm-rm} ! 57: ! 58: !GROK!THIS! ! 59: $spitshell >>Rnmail <<'!NO!SUBS!' ! 60: tmpart=/tmp/rnmail$$ ! 61: dotdir=${DOTDIR-${HOME-$LOGDIR}} ! 62: ! 63: headerfile="" ! 64: case $# in ! 65: 0) ;; ! 66: *) case $1 in ! 67: -h) ! 68: headerfile="$2" ! 69: case $# in ! 70: 3) oldart=$3 ;; ! 71: esac ! 72: ;; ! 73: esac ! 74: ;; ! 75: esac ! 76: ! 77: case $headerfile in ! 78: '') ! 79: case $# in ! 80: 0) ! 81: to=h ! 82: while $test "$to" = h ; do ! 83: $echo "" ! 84: $echo $n "To: $c" ! 85: read to ! 86: case $to in ! 87: h) ! 88: $cat <<'EOH' ! 89: ! 90: Type the net address of those people that you wish the message sent to. ! 91: Note that you will be asked later for additional addresses of people to ! 92: whom the message is not addressed but you wish to get copies. ! 93: ! 94: Separate multiple addresses with spaces. ! 95: ! 96: EOH ! 97: ;; ! 98: esac ! 99: done ! 100: ;; ! 101: *) ! 102: to="$*" ! 103: ;; ! 104: esac ! 105: to=`$echo "$to" | $sed 's/ */ /g'` ! 106: ! 107: title=h ! 108: while $test "$title" = h ; do ! 109: $echo "" ! 110: $echo $n "Title/Subject: $c" ! 111: read title ! 112: case $title in ! 113: h) ! 114: $cat <<'EOH' ! 115: ! 116: Type the title for your message. ! 117: EOH ! 118: ;; ! 119: esac ! 120: done ! 121: ! 122: # now build a file with a header for them to edit ! 123: ! 124: orgname=${ORGANIZATION-$orgname} ! 125: case $orgname in ! 126: /*) orgname=`$cat $orgname` ;; ! 127: esac ! 128: ! 129: $cat > $tmpart <<EOHeader ! 130: To: $to ! 131: Subject: $title ! 132: Organization: $orgname ! 133: Cc: ! 134: Bcc: ! 135: ! 136: EOHeader ! 137: ! 138: ;; ! 139: *) ! 140: $cat < $headerfile > $tmpart ! 141: ;; ! 142: esac ! 143: ! 144: ! 145: file=h ! 146: while $test "$file" = h ; do ! 147: $echo "" ! 148: $echo $n "Prepared file to include [none]: $c" ! 149: read file ! 150: case $file in ! 151: h) ! 152: $cat <<'EOH' ! 153: ! 154: If you have already produced the body of your message, type the filename ! 155: for it here. If you just want to proceed directly to the editor, type a ! 156: RETURN. In any event, you will be allowed to edit as many times as you ! 157: want before you send off the message. ! 158: EOH ! 159: ;; ! 160: '') ! 161: $echo "" >> $tmpart ! 162: state=edit ! 163: ;; ! 164: *) ! 165: $cat $file >>$tmpart ! 166: state=ask ! 167: ;; ! 168: esac ! 169: done ! 170: ! 171: $echo "" ! 172: ! 173: while true ; do ! 174: case $state in ! 175: edit) ! 176: rescue="sleep 1; $cat $tmpart >>${HOME-$LOGDIR}/dead.letter ; $echo saved in ${HOME-$LOGDIR}/dead.letter ; $rm -f $tmpart; exit" ! 177: trap "$rescue" 1 ! 178: trap : 2 ! 179: case "${VISUAL-${EDITOR-}}" in ! 180: '') ! 181: tmp=h ! 182: ;; ! 183: *) ! 184: tmp='' ! 185: ;; ! 186: esac ! 187: while $test "$tmp" = h ; do ! 188: $echo $n "Editor [${VISUAL-${EDITOR-$defeditor}}]: $c" ! 189: read tmp ! 190: case $tmp in ! 191: h) ! 192: $cat <<'EOH' ! 193: ! 194: Type a return to get the default editor, or type the name of the editor you ! 195: prefer. The default editor depends on the VISUAL and EDITOR environment ! 196: variables. ! 197: ! 198: EOH ! 199: ;; ! 200: '') ! 201: ;; ! 202: *) ! 203: VISUAL=$tmp ! 204: export VISUAL ! 205: ;; ! 206: esac ! 207: done ! 208: ${VISUAL-${EDITOR-$defeditor}} $tmpart $oldart ! 209: trap "$rescue" 2 ! 210: state=ask ! 211: ;; ! 212: ! 213: ask) ! 214: $echo "" ! 215: $echo $n "Send, abort, edit, or list? $c" ! 216: read ans ! 217: ! 218: case $ans in ! 219: a*) ! 220: state=rescue ! 221: ;; ! 222: e*) ! 223: state=edit ! 224: ;; ! 225: l*) ! 226: $pager $tmpart ! 227: state=ask ! 228: ;; ! 229: s*) ! 230: state=send ! 231: ;; ! 232: h*) ! 233: $cat <<'EOH' ! 234: ! 235: Type s to send the message, a to abort and append the message to dead.letter, ! 236: e to edit the message again, or l to list the message. ! 237: EOH ! 238: esac ! 239: ;; ! 240: ! 241: send) ! 242: if $test -f $dotdir/.signature; then ! 243: echo $n "Append .signature file? [y] $c" ! 244: read ans ! 245: case $ans in ! 246: ''|y*) ! 247: echo "-- " >> $tmpart ! 248: cat $dotdir/.signature >> $tmpart ! 249: ;; ! 250: esac ! 251: fi ! 252: case $mailer in ! 253: *sendmail) ! 254: $mailer -t <$tmpart ! 255: ;; ! 256: # but recmail does not know about Bcc, alas ! 257: *recmail) ! 258: $mailer <$tmpart ! 259: ;; ! 260: *) ! 261: set X `$sed <$tmpart -n -e '/^To:/{' -e 's/To: *//p' -e q -e '}'` ! 262: shift ! 263: set X "$@" `$sed <$tmpart -n -e '/^Cc:/{' -e 's/Cc: *//p' -e q -e '}'` ! 264: shift ! 265: set X "$@" `$sed <$tmpart -n -e '/^Bcc:/{' -e 's/Bcc: *//p' -e q -e '}'` ! 266: shift ! 267: $grep -v "^Bcc:" <$tmpart | $mailer "$@" ! 268: ;; ! 269: esac ! 270: case $? in ! 271: 0) ! 272: state=cleanup ! 273: ;; ! 274: *) ! 275: state=rescue ! 276: ;; ! 277: esac ! 278: ;; ! 279: rescue) ! 280: $cat $tmpart >> ${HOME-$LOGDIR}/dead.letter ! 281: $echo "Message saved to ${HOME-$LOGDIR}/dead.letter" ! 282: state=cleanup ! 283: ;; ! 284: cleanup) ! 285: $rm -f $tmpart ! 286: exit ! 287: ;; ! 288: esac ! 289: done ! 290: !NO!SUBS! ! 291: $eunicefix Rnmail ! 292: chmod 755 Rnmail
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.