Mercurial > audlegacy-plugins
comparison mkinstalldirs @ 390:6bb98fbbae04 trunk
[svn] - translation framework
author | nenolod |
---|---|
date | Mon, 18 Dec 2006 12:25:28 -0800 |
parents | 13389e613d67 |
children |
comparison
equal
deleted
inserted
replaced
389:8ab5fa857f33 | 390:6bb98fbbae04 |
---|---|
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=2004-02-15.20 | |
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 |
7 errstatus=0 | 14 errstatus=0 |
8 dirmode="" | 15 dirmode="" |
9 | 16 |
10 usage="\ | 17 usage="\ |
11 Usage: mkinstalldirs [-h] [--help] [-m mode] dir ..." | 18 Usage: mkinstalldirs [-h] [--help] [--version] [-m MODE] DIR ... |
19 | |
20 Create each directory DIR (with mode MODE, if specified), including all | |
21 leading file name components. | |
22 | |
23 Report bugs to <bug-automake@gnu.org>." | |
12 | 24 |
13 # process command line arguments | 25 # process command line arguments |
14 while test $# -gt 0 ; do | 26 while test $# -gt 0 ; do |
15 case $1 in | 27 case $1 in |
16 -h | --help | --h*) # -h for help | 28 -h | --help | --h*) # -h for help |
17 echo "$usage" 1>&2 | 29 echo "$usage" |
18 exit 0 | 30 exit 0 |
19 ;; | 31 ;; |
20 -m) # -m PERM arg | 32 -m) # -m PERM arg |
21 shift | 33 shift |
22 test $# -eq 0 && { echo "$usage" 1>&2; exit 1; } | 34 test $# -eq 0 && { echo "$usage" 1>&2; exit 1; } |
23 dirmode=$1 | 35 dirmode=$1 |
24 shift | 36 shift |
37 ;; | |
38 --version) | |
39 echo "$0 $scriptversion" | |
40 exit 0 | |
25 ;; | 41 ;; |
26 --) # stop option processing | 42 --) # stop option processing |
27 shift | 43 shift |
28 break | 44 break |
29 ;; | 45 ;; |
48 | 64 |
49 case $# in | 65 case $# in |
50 0) exit 0 ;; | 66 0) exit 0 ;; |
51 esac | 67 esac |
52 | 68 |
69 # Solaris 8's mkdir -p isn't thread-safe. If you mkdir -p a/b and | |
70 # mkdir -p a/c at the same time, both will detect that a is missing, | |
71 # one will create a, then the other will try to create a and die with | |
72 # a "File exists" error. This is a problem when calling mkinstalldirs | |
73 # from a parallel make. We use --version in the probe to restrict | |
74 # ourselves to GNU mkdir, which is thread-safe. | |
53 case $dirmode in | 75 case $dirmode in |
54 '') | 76 '') |
55 if mkdir -p -- . 2>/dev/null; then | 77 if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then |
56 echo "mkdir -p -- $*" | 78 echo "mkdir -p -- $*" |
57 exec mkdir -p -- "$@" | 79 exec mkdir -p -- "$@" |
80 else | |
81 # On NextStep and OpenStep, the `mkdir' command does not | |
82 # recognize any option. It will interpret all options as | |
83 # directories to create, and then abort because `.' already | |
84 # exists. | |
85 test -d ./-p && rmdir ./-p | |
86 test -d ./--version && rmdir ./--version | |
58 fi | 87 fi |
59 ;; | 88 ;; |
60 *) | 89 *) |
61 if mkdir -m "$dirmode" -p -- . 2>/dev/null; then | 90 if mkdir -m "$dirmode" -p --version . >/dev/null 2>&1 && |
91 test ! -d ./--version; then | |
62 echo "mkdir -m $dirmode -p -- $*" | 92 echo "mkdir -m $dirmode -p -- $*" |
63 exec mkdir -m "$dirmode" -p -- "$@" | 93 exec mkdir -m "$dirmode" -p -- "$@" |
94 else | |
95 # Clean up after NextStep and OpenStep mkdir. | |
96 for d in ./-m ./-p ./--version "./$dirmode"; | |
97 do | |
98 test -d $d && rmdir $d | |
99 done | |
64 fi | 100 fi |
65 ;; | 101 ;; |
66 esac | 102 esac |
67 | 103 |
68 for file | 104 for file |
82 echo "mkdir $pathcomp" | 118 echo "mkdir $pathcomp" |
83 | 119 |
84 mkdir "$pathcomp" || lasterr=$? | 120 mkdir "$pathcomp" || lasterr=$? |
85 | 121 |
86 if test ! -d "$pathcomp"; then | 122 if test ! -d "$pathcomp"; then |
87 errstatus=$lasterr | 123 errstatus=$lasterr |
88 else | 124 else |
89 if test ! -z "$dirmode"; then | 125 if test ! -z "$dirmode"; then |
90 echo "chmod $dirmode $pathcomp" | 126 echo "chmod $dirmode $pathcomp" |
91 lasterr="" | 127 lasterr="" |
92 chmod "$dirmode" "$pathcomp" || lasterr=$? | 128 chmod "$dirmode" "$pathcomp" || lasterr=$? |
93 | 129 |
94 if test ! -z "$lasterr"; then | 130 if test ! -z "$lasterr"; then |
95 errstatus=$lasterr | 131 errstatus=$lasterr |
96 fi | 132 fi |
97 fi | 133 fi |
98 fi | 134 fi |
99 fi | 135 fi |
100 | 136 |
101 pathcomp="$pathcomp/" | 137 pathcomp="$pathcomp/" |
102 done | 138 done |
105 exit $errstatus | 141 exit $errstatus |
106 | 142 |
107 # Local Variables: | 143 # Local Variables: |
108 # mode: shell-script | 144 # mode: shell-script |
109 # sh-indentation: 2 | 145 # sh-indentation: 2 |
146 # eval: (add-hook 'write-file-hooks 'time-stamp) | |
147 # time-stamp-start: "scriptversion=" | |
148 # time-stamp-format: "%:y-%02m-%02d.%02H" | |
149 # time-stamp-end: "$" | |
110 # End: | 150 # End: |
111 # mkinstalldirs ends here |