Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(156)

Side by Side Diff: third_party/libxml/mkinstalldirs

Issue 2951008: Update libxml to 2.7.7. (Closed) Base URL: http://src.chromium.org/git/chromium.git
Patch Set: Created 10 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 #! /bin/sh 1 #! /bin/sh
2 # mkinstalldirs --- make directory hierarchy 2 # mkinstalldirs --- make directory hierarchy
3 # Author: Noah Friedman <friedman@prep.ai.mit.edu> 3
4 scriptversion=2009-04-28.21; # UTC
5
6 # Original author: Noah Friedman <friedman@prep.ai.mit.edu>
4 # Created: 1993-05-16 7 # Created: 1993-05-16
5 # Public domain 8 # Public domain.
9 #
10 # This file is maintained in Automake, please report
11 # bugs to <bug-automake@gnu.org> or send patches to
12 # <automake-patches@gnu.org>.
6 13
14 nl='
15 '
16 IFS=" "" $nl"
7 errstatus=0 17 errstatus=0
8 dirmode="" 18 dirmode=
9 19
10 usage="\ 20 usage="\
11 Usage: mkinstalldirs [-h] [--help] [-m mode] dir ..." 21 Usage: mkinstalldirs [-h] [--help] [--version] [-m MODE] DIR ...
22
23 Create each directory DIR (with mode MODE, if specified), including all
24 leading file name components.
25
26 Report bugs to <bug-automake@gnu.org>."
12 27
13 # process command line arguments 28 # process command line arguments
14 while test $# -gt 0 ; do 29 while test $# -gt 0 ; do
15 case "${1}" in 30 case $1 in
16 -h | --help | --h* )» » » # -h for help 31 -h | --help | --h*) # -h for help
17 » echo "${usage}" 1>&2; exit 0 ;; 32 echo "$usage"
18 -m )» » » » » # -m PERM arg 33 exit $?
19 » shift 34 ;;
20 » test $# -eq 0 && { echo "${usage}" 1>&2; exit 1; } 35 -m) # -m PERM arg
21 » dirmode="${1}" 36 shift
22 » shift ;; 37 test $# -eq 0 && { echo "$usage" 1>&2; exit 1; }
23 -- ) shift; break ;;» » » # stop option processing 38 dirmode=$1
24 -* ) echo "${usage}" 1>&2; exit 1 ;;» # unknown option 39 shift
25 * ) break ;;» » » » # first non-opt arg 40 ;;
26 esac 41 --version)
42 echo "$0 $scriptversion"
43 exit $?
44 ;;
45 --) # stop option processing
46 shift
47 break
48 ;;
49 -*) # unknown option
50 echo "$usage" 1>&2
51 exit 1
52 ;;
53 *) # first non-opt arg
54 break
55 ;;
56 esac
27 done 57 done
28 58
29 for file 59 for file
30 do 60 do
31 if test -d "$file"; then 61 if test -d "$file"; then
32 shift 62 shift
33 else 63 else
34 break 64 break
35 fi 65 fi
36 done 66 done
37 67
38 case $# in 68 case $# in
39 0) exit 0 ;; 69 0) exit 0 ;;
40 esac 70 esac
41 71
72 # Solaris 8's mkdir -p isn't thread-safe. If you mkdir -p a/b and
73 # mkdir -p a/c at the same time, both will detect that a is missing,
74 # one will create a, then the other will try to create a and die with
75 # a "File exists" error. This is a problem when calling mkinstalldirs
76 # from a parallel make. We use --version in the probe to restrict
77 # ourselves to GNU mkdir, which is thread-safe.
42 case $dirmode in 78 case $dirmode in
43 '') 79 '')
44 if mkdir -p -- . 2>/dev/null; then 80 if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
45 echo "mkdir -p -- $*" 81 echo "mkdir -p -- $*"
46 exec mkdir -p -- "$@" 82 exec mkdir -p -- "$@"
47 fi ;; 83 else
48 *) 84 # On NextStep and OpenStep, the `mkdir' command does not
49 if mkdir -m "$dirmode" -p -- . 2>/dev/null; then 85 # recognize any option. It will interpret all options as
50 echo "mkdir -m $dirmode -p -- $*" 86 # directories to create, and then abort because `.' already
51 exec mkdir -m "$dirmode" -p -- "$@" 87 # exists.
52 fi ;; 88 test -d ./-p && rmdir ./-p
89 test -d ./--version && rmdir ./--version
90 fi
91 ;;
92 *)
93 if mkdir -m "$dirmode" -p --version . >/dev/null 2>&1 &&
94 test ! -d ./--version; then
95 echo "mkdir -m $dirmode -p -- $*"
96 exec mkdir -m "$dirmode" -p -- "$@"
97 else
98 # Clean up after NextStep and OpenStep mkdir.
99 for d in ./-m ./-p ./--version "./$dirmode";
100 do
101 test -d $d && rmdir $d
102 done
103 fi
104 ;;
53 esac 105 esac
54 106
55 for file 107 for file
56 do 108 do
57 set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` 109 case $file in
58 shift 110 /*) pathcomp=/ ;;
111 *) pathcomp= ;;
112 esac
113 oIFS=$IFS
114 IFS=/
115 set fnord $file
116 shift
117 IFS=$oIFS
59 118
60 pathcomp= 119 for d
61 for d 120 do
62 do 121 test "x$d" = x && continue
63 pathcomp="$pathcomp$d"
64 case "$pathcomp" in
65 -* ) pathcomp=./$pathcomp ;;
66 esac
67 122
68 if test ! -d "$pathcomp"; then 123 pathcomp=$pathcomp$d
69 » echo "mkdir $pathcomp" 124 case $pathcomp in
125 -*) pathcomp=./$pathcomp ;;
126 esac
70 127
71 » mkdir "$pathcomp" || lasterr=$? 128 if test ! -d "$pathcomp"; then
129 echo "mkdir $pathcomp"
72 130
73 » if test ! -d "$pathcomp"; then 131 mkdir "$pathcomp" || lasterr=$?
74 » errstatus=$lasterr
75 » else
76 » if test ! -z "$dirmode"; then
77 » echo "chmod $dirmode $pathcomp"
78 132
79 » lasterr="" 133 if test ! -d "$pathcomp"; then
80 » chmod "$dirmode" "$pathcomp" || lasterr=$? 134 » errstatus=$lasterr
135 else
136 » if test ! -z "$dirmode"; then
137 » echo "chmod $dirmode $pathcomp"
138 » lasterr=
139 » chmod "$dirmode" "$pathcomp" || lasterr=$?
81 140
82 » if test ! -z "$lasterr"; then 141 » if test ! -z "$lasterr"; then
83 » errstatus=$lasterr 142 » errstatus=$lasterr
84 » fi
85 fi 143 fi
86 fi 144 fi
87 fi 145 fi
146 fi
88 147
89 pathcomp="$pathcomp/" 148 pathcomp=$pathcomp/
90 done 149 done
91 done 150 done
92 151
93 exit $errstatus 152 exit $errstatus
94 153
95 # Local Variables: 154 # Local Variables:
96 # mode: shell-script 155 # mode: shell-script
97 # sh-indentation: 3 156 # sh-indentation: 2
157 # eval: (add-hook 'write-file-hooks 'time-stamp)
158 # time-stamp-start: "scriptversion="
159 # time-stamp-format: "%:y-%02m-%02d.%02H"
160 # time-stamp-time-zone: "UTC"
161 # time-stamp-end: "; # UTC"
98 # End: 162 # End:
99 # mkinstalldirs ends here
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698