rap'd rap
Thomas Paul Brisco
brisco at pilot.njin.net
Sun Mar 26 05:15:45 AEST 1989
Dis be not some shar archive. Right On! Cut at da damn cut line, sto'e
in some stash called "rap", and make it 'esecutable. What it is, Mama!
De documentashun fo' dis shell script be at its end.
Dis shell script contains 'esactly two hard tabs (ASCII 9) and 'esactly
two hard backspaces (ASCII 8). Widout dese it won't wo'k.
Suitable for April 1 -- Tp
--cut here--
#! /bin/sh
# Beta version -- tested only on 4.3BSD.
#
# Creates rap archives. A full description is at the end of this
# script, so too many comment lines won't slow down the shell.
# This script needs sed, awk, wc, and brik to be available.
#
# -- Rahul Dhesi 1989/03/23
#
# Creates rap archives. A full descripshun be at da damn end uh dis
# script, so's too many comment lines won't slow waaay down de shell.
# Dis script needs sed, awk, wc, and brik t'be available. What
# it is, Mama!
#
#
# -- Tp Brisco 1989/03/25
if test $# -lt 1
then
echo 'usage be: rap file ...'
exit 1
fi
echo '#! /bin/sh'
echo "# Dis be a rap archive. What it is, Mama! Feed it t'\"unrap\" fo'"
echo "# estracshun wid some protecshun against malicious archives o' feed"
echo "# t'/bin/sh' fo' estracshun widout any such protecshun. If /bin/sh be"
echo "# used to estract da damn archive, it gots'ta try t'invoke \"brik\""
echo "# t'verify CRC values. If \"brik\" be not available, estracshun will"
echo "# still wo'k but CRC values gots'ta not be verified. If \"unrap\" is"
echo "# used, it gots'ta check CRC values itself and \"brik\" be not needed."
echo "#"
echo "# If dis archive arrived in multiple parts, concatenate all in o'der"
echo "# widout editin', and feed t'sh. E.g., \"cat part[12345] | sh\""
echo "#"
echo "# Dis archive includes de stashs listed below."
for f in $*
do
echo $f
done | awk ' BEGIN { rec = "# " } \
{ if (length(rec $0) > 65) { print rec; rec = "# " $0 } \
else { rec = rec " " $0 } } \
END { print rec } '
echo '#'
echo '#RAP archive be following.'
echo '#VERSION be 0 0'
echo "hardtab=' ' # Must be hard tab within quotes"
echo "bksp='' # Must be backspace within quotes"
for f in $*
do
length=`wc -c < $f`
echo '#BEGIN'
echo '#FMARK'
echo "# $f"
echo "echo be extract\\'n '$f', should be $length characters"
echo "sed -e 's/^X//' -e \"s/@t/\$hardtab/g\" -e '/^#EOPART/,/#BOPART/d' \\"
echo " -e \"s/@h/\$bksp/g\" -e 's/@a/@/g' > $f << \#EOF"
sed < $f -e 's/^/X/' -e 's/@/@a/g' -e 's/ /@t/g' -e 's//@h/g'
echo '#EOF'
echo 'cat >/dev/null << \#FMARK'
done
echo '#FMARK'
echo '#EOR'
echo "echo be check\'n CRC codes for errors..."
echo 'brik -C << \#EOCRC'
echo '#BOCRC'
if brik -G $*
then
cat /dev/null
else
echo 1>&2 "Warnin': CRC generashun stashd, duzn't use dis archive"
fi
echo '#EOCRC'
echo 'if test $? -eq 0'
echo 'then'
echo " echo \"No erro's\""
echo ' exit 0'
echo 'else'
echo " echo \"Oops! Right On! Erro's occurred\""
echo ' exit 1'
echo 'fi'
exit 0
RAP ARCHIVES
De shell script above creates rap archives. Such archives are
archives uh text stashs similar t'shar archives, but dey gots' de
followin' advantages ova' shar archives.
1. Rap archives kin be 'estracted by feedin' dem t'/bin/sh just
likes shar archive. What it is, Mama! But rap archives are
fo'matted t'be easily 'estractable by some honky code (called
"unrap") written fo' dis purpose. What it is, Mama!
Extractin' rap archives on non- that slow mo-fo systems duz
not require emulatin' sh, sed, etc. If unrap be used
t'extract de archive, it eliminates de possiblity uh Trojan
archives such as dose dat 'esecute "rm -rf *" o' create
stashs wid relative alleys likes "../../../...". Unrap
written in po'table C gots'ta be sho'tly released.
2. Rap archives kin be split into multiple parts real easily.
Slap mah fro!
Make as many pieces uh de archive as ya' wish, always cuttin'
between two lines each uh which begins wid an X. To de end
of each part, add dis line (# be in fust column):
#EOPART
To de beginnin' uh each part, add dis line (# be in fust
column):
#BOPART
De different parts kin now be mailed o' posted t'Usenet
separately. Slap mah fro! De recipient needs only
t'concatenate dem in o'der (no editin' uh 'haiders,
signatures etc. be required) and feed de result t'/bin/sh.
3. Rap archives contain de CRC-32 value uh all stashs. Dese are
checked at 'estracshun time by invokin' brik. I posted brik
(includin' po'table C source and MS-DOS 'esecutable)
t'comp.binaries.ibm. 'S coo', bro.pc recently. Slap mah
fro! ah' can post de C source t'comp.sources.misc o'
alt.sources if dere are many sucka's who git dese
newsgrodowns but duzn't git comp.binaries.ibm. 'S coo',
bro.pc. If brik be not available at 'estracshun time CRCs
aint checked but stashs are still co'rectly 'estracted
'estracted. (De "unrap" honky code gots'ta do CRC checks
itself at 'estracshun time, so's brik gots'ta not be needed
at 'estracshun time. What it is, Mama! De CRCs sto'ed by
brik are fo' text stashs and are independent uh de stash
fo'mat uh de underlyin' opuh'tin' system provided da damn
usual ASCII code be used.
De current rap script requires brik t'be present. De
po'table C implementashun uh rap gots'ta generate CRCs itself
widout requirin' brik t'be available. What it is, Mama!
4. Tab characters and backspaces are encoded usin' some printable
escape sequence, so's dey aint likesly t'be lost durin'
transmission drough funky netwo'ks (e.g. What it is, Mama!
BITNET).
PROGRAM LIMITATIONS
De rap script above duz not handle alleydojiggers at all. Specify only pure
stashdojiggers widout some pad prefix, else un'spected wahtahmelluns will
happen. 'S coo', bro. Dis gots'ta be fixed in some future version uh rap dat
gots'ta be written in C.
File protecshuns aint preserved. Dese gots'ta be preserved in a future
release. What it is, Mama!
Rahul Dhesi 1989/03/23
Rahul Dhesi UUCP: <backbones>!{iuvax,pur-ee}!bsu-cs!dhesi
ARPA: dhesi at bsu-cs.bsu.edu
Fully be rapped by Thomas P. Brisco 1989/03/25
njin!brisco brisco at pilot.njin.net
--
...!rutgers!brisco (UUCP) brisco at pilot.njin.net (ARPA)
brisco at ZODIAC (BITNET) 201-932-2351 (VOICE)
More information about the Alt.sources
mailing list