Annotation of embedaddon/mtr/build-aux/mkinstalldirs, revision 1.1.1.1
1.1 misho 1: #! /bin/sh
2: # mkinstalldirs --- make directory hierarchy
3: # Author: Noah Friedman <friedman@prep.ai.mit.edu>
4: # Created: 1993-05-16
5: # Public domain
6:
7: errstatus=0
8: dirmode=""
9:
10: usage="\
11: Usage: mkinstalldirs [-h] [--help] [-m mode] dir ..."
12:
13: # process command line arguments
14: while test $# -gt 0 ; do
15: case $1 in
16: -h | --help | --h*) # -h for help
17: echo "$usage" 1>&2
18: exit 0
19: ;;
20: -m) # -m PERM arg
21: shift
22: test $# -eq 0 && { echo "$usage" 1>&2; exit 1; }
23: dirmode=$1
24: shift
25: ;;
26: --) # stop option processing
27: shift
28: break
29: ;;
30: -*) # unknown option
31: echo "$usage" 1>&2
32: exit 1
33: ;;
34: *) # first non-opt arg
35: break
36: ;;
37: esac
38: done
39:
40: for file
41: do
42: if test -d "$file"; then
43: shift
44: else
45: break
46: fi
47: done
48:
49: case $# in
50: 0) exit 0 ;;
51: esac
52:
53: case $dirmode in
54: '')
55: if mkdir -p -- . 2>/dev/null; then
56: echo "mkdir -p -- $*"
57: exec mkdir -p -- "$@"
58: fi
59: ;;
60: *)
61: if mkdir -m "$dirmode" -p -- . 2>/dev/null; then
62: echo "mkdir -m $dirmode -p -- $*"
63: exec mkdir -m "$dirmode" -p -- "$@"
64: fi
65: ;;
66: esac
67:
68: for file
69: do
70: set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
71: shift
72:
73: pathcomp=
74: for d
75: do
76: pathcomp="$pathcomp$d"
77: case $pathcomp in
78: -*) pathcomp=./$pathcomp ;;
79: esac
80:
81: if test ! -d "$pathcomp"; then
82: echo "mkdir $pathcomp"
83:
84: mkdir "$pathcomp" || lasterr=$?
85:
86: if test ! -d "$pathcomp"; then
87: errstatus=$lasterr
88: else
89: if test ! -z "$dirmode"; then
90: echo "chmod $dirmode $pathcomp"
91: lasterr=""
92: chmod "$dirmode" "$pathcomp" || lasterr=$?
93:
94: if test ! -z "$lasterr"; then
95: errstatus=$lasterr
96: fi
97: fi
98: fi
99: fi
100:
101: pathcomp="$pathcomp/"
102: done
103: done
104:
105: exit $errstatus
106:
107: # Local Variables:
108: # mode: shell-script
109: # sh-indentation: 2
110: # End:
111: # mkinstalldirs ends here
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>