dtstyle: Coverity 89011
[oweals/cde.git] / cde / util / scripts / mkdirhier.sh
1 #!/bin/sh
2 # $XConsortium: mkdirhier.sh,v 1.6 91/08/13 18:13:04 rws Exp $
3 # Courtesy of Paul Eggert
4
5 newline='
6 '
7 IFS=$newline
8
9 case ${1--} in
10 -*) echo >&2 "mkdirhier: usage: mkdirhier directory ..."; exit 1
11 esac
12
13 status=
14
15 for directory
16 do
17         case $directory in
18         '')
19                 echo >&2 "mkdirhier: empty directory name"
20                 status=1
21                 continue;;
22         *"$newline"*)
23                 echo >&2 "mkdirhier: directory name contains a newline: \`\`$directory''"
24                 status=1
25                 continue;;
26         ///*) prefix=/;; # See Posix 2.3 "path".
27         //*) prefix=//;;
28         /*) prefix=/;;
29         -*) prefix=./;;
30         *) prefix=
31         esac
32
33         IFS=/
34         set x $directory
35         IFS=$newline
36         shift
37
38         for filename
39         do
40                 path=$prefix$filename
41                 prefix=$path/
42                 shift
43
44                 test -d "$path" || {
45                         paths=$path
46                         for filename
47                         do
48                                 if [ "$filename" != "." ]; then
49                                         path=$path/$filename
50                                         paths=$paths$newline$path
51                                 fi
52                         done
53
54                         mkdir $paths || status=$?
55
56                         break
57                 }
58         done
59   done
60
61 exit $status