flong@sdsu.UUCP (Fred J. E. Long) (02/22/89)
Below are the two programs I use to send big files (like GNU C) through the mail. Here is how you would normally use them: midgard % send flong%sdsu.UUCP@ucsd foobar.tar.Z . . sdsu % extract /usr/spool/mail/flong > newmail sdsu % cat x* > foobar.uue ; uudecode foobar.uue sdsu % cp newmail /usr/spool/mail/flong (after checking that newmail is OK) --fjel #!/bin/sh # shar: Shell Archiver # Run the following text with /bin/sh to create: # extract.c # send sed 's/^X//' << 'SHAR_EOF' > extract.c X#include <stdio.h> X Xmain(argc, argv) Xint argc; Xchar **argv; X{ X char st[2000], name[200]; X int found = 0, count = 0; X FILE *fi, *in; X X if (argc >= 2) { X in = fopen(argv[1], "r"); X if (!in) { X fprintf(stderr, "Could not open \"%\"\n", argv[1]); X exit(-1); X } X } X if (argc < 2 || !in) { X fprintf(stderr, "\"extract\" filename\n"); X exit(-1); X } X while (fgets(st, 2000, in)) { X X st[strlen(st) - 1] = '\0'; X if (!found) { X if (*st == 'x' && strlen(st) == 3) { X sprintf(name,"%s%d", st, count++); X if (!(fi = fopen(name, "w"))) { X fprintf(stderr, X "Could not open \"%\"\n", name); X exit(-1); X } X found = 1; X } X else puts(st); X } X else { X if (*st) fprintf(fi, "%s\n", st); X else { X fclose(fi); X found = 0; X } X } X } X} SHAR_EOF sed 's/^X//' << 'SHAR_EOF' > send X#!/bin/csh -fb X# X# send X# X# Fred Jon Edward Long X# X# Tue Feb 21 21:57:46 PST 1989 X# X# "send" to-who filename X# Xif ($1 == "" || $2 == "") then X echo "send to-who filename & (should be done in background)" X exit 0 Xendif X Xmkdir .xxlkh48 Xcp $2 .xxlkh48/tmp8734 Xcd .xxlkh48 Xuuencode $2 < tmp8734 > uue Xsplit -1500 uue X Xforeach i (`ls x*`) X echo $i >& foo X cat $i >> foo X mail -s "$2" $1 < foo X sleep 10 Xend X Xcd .. Xrm -rf .xxlkh48 X SHAR_EOF exit -- Fred J. E. Long San Diego State University, San Diego, California 92093 ARPA: flong%midgard@ucscc.ucsc.edu UUCP: ...!ucsd!sdsu!flong