Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Newer
Older
100755 112 lines (96 sloc) 1.988 kb
14c2920 Imported Upstream version 1.5.18
Antonio Radici authored
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
Something went wrong with that request. Please try again.