Fix typo in license headers
[oweals/cde.git] / cde / programs / dtksh / ksh93 / src / cmd / pax / cpio.sh
1 # $XConsortium: cpio.sh /main/2 1995/07/19 17:13:12 drk $
2 :
3 # Glenn Fowler
4 # AT&T Bell Laboratories
5 # @(#)cpio.sh (gsf@research.att.com) 08/11/90
6 #
7 # cpio -> pax interface script
8 #
9
10 command=cpio
11 usage="
12 Usage: $command -o[acvBV] [-C size] [-M mesg] [-O file | >file ] <list
13        $command -i[bcdfkmrtsuvBSV6] [-I file | <file] [pattern ...]
14        $command -p[adlmuvV] directory"
15
16 case $1 in
17 *i*)    mode="-r" ;;
18 *o*)    mode="-w" ;;
19 *p*)    mode="-rw" ;;
20 *)      echo "$command: one of -i, -o, -p must be specified$usage" >&2; exit 1 ;;
21 esac
22 options=""
23 blocksize=1b
24 debug=
25 format=binary
26 list=""
27 logphys=-P
28 d_default="-d"
29 m_default="-m"
30 u_default="-u"
31 r_ok="1"
32 w_ok="1"
33 p_ok="1"
34 while   :
35 do      case $# in
36         0)      break ;;
37         esac
38         case $1 in
39         --)     shift; break ;;
40         -*)     for opt in `echo '' $1 | sed -e 's/-//' -e 's/./& /g'`
41                 do      case $opt in
42                         '#')    case $debug in
43                                 "")     debug=echo ;;
44                                 *)      debug=args ;;
45                                 esac
46                                 ;;
47                         [bsS6]) ;;
48                         [klvV]) options="$options -$opt" ;;
49                         a)      r_ok="" options="$options -p" ;;
50                         c)      format=cpio ;;
51                         d)      w_ok="" d_default="" ;;
52                         f)      w_ok="" p_ok="" options="$options -c" ;;
53                         i)      w_ok="" p_ok="" ;;
54                         m)      w_ok="" m_default="" ;;
55                         o)      r_ok="" p_ok="" u_default="" ;;
56                         p)      r_ok="" w_ok="" ;;
57                         r)      w_ok="" p_ok="" options="$options -i" ;;
58                         t)      w_ok="" p_ok="" list="1" ;;
59                         u)      w_ok="" u_default="" ;;
60                         B)      blocksize=5k ;;
61                         L)      logphys=-L ;;
62                         [CIMO]) a=`echo '' $1 | sed -e "s/[^$opt]*$opt//"`
63                                 case $a in
64                                 "")     case $# in
65                                         1)      echo "$command: option -$opt requires an argument$usage" >&2; exit 1 ;;
66                                         esac
67                                         shift
68                                         a=$1
69                                         ;;
70                                 esac
71                                 case $opt in
72                                 C)      case $a in
73                                         *[0-9]) a=${a}c ;;
74                                         esac
75                                         blocksize=$a
76                                         ;;
77                                 I)      w_ok="" p_ok="" options="$options -f '$a'" ;;
78                                 O)      r_ok="" p_ok="" options="$options -f '$a'" ;;
79                                 M)      options="$options -$opt '$a'" ;;
80                                 esac
81                                 break
82                                 ;;
83                         *)      echo "$command: invalid option -$opt$usage" >&2; exit 1 ;;
84                         esac
85                 done
86                 ;;
87         *)      break ;;
88         esac
89         shift
90 done
91 case $mode in
92 -r)     case $r_ok in
93         "")     echo "$command: options inconsistent with archive read" >&2; exit 1 ;;
94         esac
95         options="$options -b $blocksize"
96         ;;
97 -w)     case $w_ok in
98         "")     echo "$command: options inconsistent with archive write" >&2; exit 1 ;;
99         esac
100         case $# in
101         0)      ;;
102         *)      echo "$command: arguments not expected" >&2; exit 1 ;;
103         esac
104         options="$options -x $format -b $blocksize"
105         ;;
106 -rw)    case $p_ok in
107         "")     echo "$command: options inconsistent with file pass" >&2; exit 1 ;;
108         esac
109         case $# in
110         1)      ;;
111         *)      echo "$command: a single directory argument is expected$usage" >&2; exit 1 ;;
112         esac
113         ;;
114 esac
115 case $list in
116 "1")    mode="" d_default="" m_default="" u_default="" ;;
117 esac
118 $debug pax $mode $logphys $options $d_default $m_default $u_default "$@"