Annotation of embedaddon/coova-chilli/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; exit 0 ;;
18: -m ) # -m PERM arg
19: shift
20: test $# -eq 0 && { echo "${usage}" 1>&2; exit 1; }
21: dirmode="${1}"
22: shift ;;
23: -- ) shift; break ;; # stop option processing
24: -* ) echo "${usage}" 1>&2; exit 1 ;; # unknown option
25: * ) break ;; # first non-opt arg
26: esac
27: done
28:
29: for file
30: do
31: if test -d "$file"; then
32: shift
33: else
34: break
35: fi
36: done
37:
38: case $# in
39: 0) exit 0 ;;
40: esac
41:
42: case $dirmode in
43: '')
44: if mkdir -p -- . 2>/dev/null; then
45: echo "mkdir -p -- $*"
46: exec mkdir -p -- "$@"
47: fi ;;
48: *)
49: if mkdir -m "$dirmode" -p -- . 2>/dev/null; then
50: echo "mkdir -m $dirmode -p -- $*"
51: exec mkdir -m "$dirmode" -p -- "$@"
52: fi ;;
53: esac
54:
55: for file
56: do
57: set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
58: shift
59:
60: pathcomp=
61: for d
62: do
63: pathcomp="$pathcomp$d"
64: case "$pathcomp" in
65: -* ) pathcomp=./$pathcomp ;;
66: esac
67:
68: if test ! -d "$pathcomp"; then
69: echo "mkdir $pathcomp"
70:
71: mkdir "$pathcomp" || lasterr=$?
72:
73: if test ! -d "$pathcomp"; then
74: errstatus=$lasterr
75: else
76: if test ! -z "$dirmode"; then
77: echo "chmod $dirmode $pathcomp"
78:
79: lasterr=""
80: chmod "$dirmode" "$pathcomp" || lasterr=$?
81:
82: if test ! -z "$lasterr"; then
83: errstatus=$lasterr
84: fi
85: fi
86: fi
87: fi
88:
89: pathcomp="$pathcomp/"
90: done
91: done
92:
93: exit $errstatus
94:
95: # Local Variables:
96: # mode: shell-script
97: # sh-indentation: 3
98: # End:
99: # mkinstalldirs ends here
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>