Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Newer
Older
100755 102 lines (84 sloc) 1.857 kb
f2fa465 Miguel de Icaza Add mkinstalldirs
migueldeicaza 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 # $Id: mkinstalldirs 36980 2004-12-03 01:08:33Z benm $
8
9 errstatus=0
10 dirmode=""
11
12 usage="\
13 Usage: mkinstalldirs [-h] [--help] [-m mode] dir ..."
14
15 # process command line arguments
16 while test $# -gt 0 ; do
17 case "${1}" in
18 -h | --help | --h* ) # -h for help
19 echo "${usage}" 1>&2; exit 0 ;;
20 -m ) # -m PERM arg
21 shift
22 test $# -eq 0 && { echo "${usage}" 1>&2; exit 1; }
23 dirmode="${1}"
24 shift ;;
25 -- ) shift; break ;; # stop option processing
26 -* ) echo "${usage}" 1>&2; exit 1 ;; # unknown option
27 * ) break ;; # first non-opt arg
28 esac
29 done
30
31 for file
32 do
33 if test -d "$file"; then
34 shift
35 else
36 break
37 fi
38 done
39
40 case $# in
41 0) exit 0 ;;
42 esac
43
44 case $dirmode in
45 '')
46 if mkdir -p -- . 2>/dev/null; then
47 echo "mkdir -p -- $*"
48 exec mkdir -p -- "$@"
49 fi ;;
50 *)
51 if mkdir -m "$dirmode" -p -- . 2>/dev/null; then
52 echo "mkdir -m $dirmode -p -- $*"
53 exec mkdir -m "$dirmode" -p -- "$@"
54 fi ;;
55 esac
56
57 for file
58 do
59 set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
60 shift
61
62 pathcomp=
63 for d
64 do
65 pathcomp="$pathcomp$d"
66 case "$pathcomp" in
67 -* ) pathcomp=./$pathcomp ;;
68 esac
69
70 if test ! -d "$pathcomp"; then
71 echo "mkdir $pathcomp"
72
73 mkdir "$pathcomp" || lasterr=$?
74
75 if test ! -d "$pathcomp"; then
76 errstatus=$lasterr
77 else
78 if test ! -z "$dirmode"; then
79 echo "chmod $dirmode $pathcomp"
80
81 lasterr=""
82 chmod "$dirmode" "$pathcomp" || lasterr=$?
83
84 if test ! -z "$lasterr"; then
85 errstatus=$lasterr
86 fi
87 fi
88 fi
89 fi
90
91 pathcomp="$pathcomp/"
92 done
93 done
94
95 exit $errstatus
96
97 # Local Variables:
98 # mode: shell-script
99 # sh-indentation: 3
100 # End:
101 # mkinstalldirs ends here
Something went wrong with that request. Please try again.