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