############################################################################ # # File: shar.icn # # Subject: Program to create UNIX shell archive # # Author: Robert J. Alexander # # Date: May 6, 1992 # ############################################################################ # # This file is in the public domain. # ############################################################################ # # Program to create Bourne shell archive of text files. # # Usage: shar text_file... # ############################################################################ procedure main(arg) local fn, chars, f, line write( "#! /bin/sh_ \n# This is a shell archive, meaning:_ \n# 1. Remove everything above the #! /bin/sh line._ \n# 2. Save the resulting text in a file._ \n# 3. Execute the file with /bin/sh (not csh) to create:") every write("#\t",!arg) write( "# This archive created: ",&dateline, "\nexport PATH; PATH=/bin:/usr/bin:$PATH") every fn := !arg do { chars := 0 f := open(fn) | stop("Can't open \",fn,"\"") write( "if test -f '",fn,"'_ \nthen_ \n\techo shar: \"will not over-write existing file '",fn,"'\"_ \nelse_ \ncat << \\SHAR_EOF > '",fn,"'") while line := read(f) do { write(line) chars +:= *line + 1 } write( "SHAR_EOF_ \nif test ",chars," -ne \"`wc -c < '",fn,"'`\"_ \nthen_ \n\techo shar: \"error transmitting '",fn,"'\" '(should have been ", chars," characters)'_ \nfi_ \nfi") close(f) } write( "exit 0_ \n#\tEnd of shell archive") end