source: vendor/bash/3.1-p17/examples/scripts.v2/uuenc

Last change on this file was 3228, checked in by bird, 18 years ago

bash 3.1

File size: 1.6 KB
Line 
1#! /bin/bash
2#
3# original from:
4# @(#) uuenc.ksh 1.0 93/09/18
5# 93/09/18 john h. dubois iii (john@armory.com)
6#
7# conversion to bash v2 syntax by Chet Ramey
8
9istrue()
10{
11 test 0 -ne "$1"
12}
13
14isfalse()
15{
16 test 0 -eq "$1"
17}
18
19phelp()
20{
21echo "$name: uuencode files.
22$Usage
23For each filename given, $name uuencodes the file, using the final
24component of the file's path as the stored filename in the uuencoded
25archive and, with a .${SUF} appended, as the name to store the archive in.
26Example:
27$name /tmp/foo
28The file /tmp/foo is uuencoded, with \"foo\" stored as the name to uudecode
29the file into, and the output is stored in a file in the current directory
30with the name \"foo.${SUF}\".
31Options:
32-f: Normally, if the file the output would be stored in already exists,
33 it is not overwritten and an error message is printed. If -f (force)
34 is given, it is silently overwritten.
35-h: Print this help."
36}
37
38name=${0##*/}
39Usage="Usage: $name [-hf] <filename> ..."
40typeset -i force=0
41
42SUF=uu
43
44while getopts :hf opt; do
45 case $opt in
46 h) phelp; exit 0;;
47 f) force=1;;
48 +?) echo "$name: options should not be preceded by a '+'." 1>&2 ; exit 2;;
49 ?) echo "$name: $OPTARG: bad option. Use -h for help." 1>&2 ; exit 2;;
50 esac
51done
52
53# remove args that were options
54shift $((OPTIND - 1))
55
56if [ $# -lt 1 ]; then
57 echo "$Usage\nUse -h for help." 1>&2
58 exit
59fi
60
61for file; do
62 tail=${file##*/}
63 out="$tail.${SUF}"
64 if isfalse $force && [ -a "$out" ]; then
65 echo "$name: $out: file exists. Use -f to overwrite." 1>&2
66 else
67 uuencode $file $tail > $out
68 fi
69done
Note: See TracBrowser for help on using the repository browser.