diff options
Diffstat (limited to 'examples/scripts.v2/uuenc')
-rw-r--r-- | examples/scripts.v2/uuenc | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/examples/scripts.v2/uuenc b/examples/scripts.v2/uuenc new file mode 100644 index 0000000..480aa48 --- /dev/null +++ b/examples/scripts.v2/uuenc @@ -0,0 +1,69 @@ +#! /bin/bash +# +# original from: +# @(#) uuenc.ksh 1.0 93/09/18 +# 93/09/18 john h. dubois iii (john@armory.com) +# +# conversion to bash v2 syntax by Chet Ramey + +istrue() +{ + test 0 -ne "$1" +} + +isfalse() +{ + test 0 -eq "$1" +} + +phelp() +{ +echo "$name: uuencode files. +$Usage +For each filename given, $name uuencodes the file, using the final +component of the file's path as the stored filename in the uuencoded +archive and, with a .${SUF} appended, as the name to store the archive in. +Example: +$name /tmp/foo +The file /tmp/foo is uuencoded, with \"foo\" stored as the name to uudecode +the file into, and the output is stored in a file in the current directory +with the name \"foo.${SUF}\". +Options: +-f: Normally, if the file the output would be stored in already exists, + it is not overwritten and an error message is printed. If -f (force) + is given, it is silently overwritten. +-h: Print this help." +} + +name=${0##*/} +Usage="Usage: $name [-hf] <filename> ..." +typeset -i force=0 + +SUF=uu + +while getopts :hf opt; do + case $opt in + h) phelp; exit 0;; + f) force=1;; + +?) echo "$name: options should not be preceded by a '+'." 1>&2 ; exit 2;; + ?) echo "$name: $OPTARG: bad option. Use -h for help." 1>&2 ; exit 2;; + esac +done + +# remove args that were options +shift $((OPTIND - 1)) + +if [ $# -lt 1 ]; then + echo "$Usage\nUse -h for help." 1>&2 + exit +fi + +for file; do + tail=${file##*/} + out="$tail.${SUF}" + if isfalse $force && [ -a "$out" ]; then + echo "$name: $out: file exists. Use -f to overwrite." 1>&2 + else + uuencode $file $tail > $out + fi +done |