ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/svn/pxys-hybrid/trunk/pxyservd/dbprim/mkinstalldirs
(Generate patch)

Comparing pxys-hybrid/trunk/pxyservd/dbprim/mkinstalldirs (file contents):
Revision 3392 by michael, Fri Apr 25 16:43:41 2014 UTC vs.
Revision 3393 by michael, Fri Apr 25 17:07:35 2014 UTC

# Line 1 | Line 1
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
3  
4 + scriptversion=2009-04-28.21; # UTC
5 +
6 + # Original author: Noah Friedman <friedman@prep.ai.mit.edu>
7 + # Created: 1993-05-16
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>.
13 +
14 + nl='
15 + '
16 + IFS=" ""        $nl"
17   errstatus=0
18 < dirmode=""
18 > dirmode=
19  
20   usage="\
21 < 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>."
27  
28   # process command line arguments
29   while test $# -gt 0 ; do
30 <   case "${1}" in
31 <     -h | --help | --h* )                       # -h for help
32 <        echo "${usage}" 1>&2; exit 0 ;;
33 <     -m )                                       # -m PERM arg
34 <        shift
35 <        test $# -eq 0 && { echo "${usage}" 1>&2; exit 1; }
36 <        dirmode="${1}"
37 <        shift ;;
38 <     -- ) shift; break ;;                       # stop option processing
39 <     -* ) echo "${usage}" 1>&2; exit 1 ;;       # unknown option
40 <     * )  break ;;                              # first non-opt arg
41 <   esac
30 >  case $1 in
31 >    -h | --help | --h*)         # -h for help
32 >      echo "$usage"
33 >      exit $?
34 >      ;;
35 >    -m)                         # -m PERM arg
36 >      shift
37 >      test $# -eq 0 && { echo "$usage" 1>&2; exit 1; }
38 >      dirmode=$1
39 >      shift
40 >      ;;
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
57   done
58  
59   for file
# Line 36 | Line 66 | do
66   done
67  
68   case $# in
69 < 0) exit 0 ;;
69 >  0) exit 0 ;;
70   esac
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.
78   case $dirmode in
79 < '')
80 <  if mkdir -p -- . 2>/dev/null; then
81 <    echo "mkdir -p -- $*"
82 <    exec mkdir -p -- "$@"
83 <  fi ;;
84 < *)
85 <  if mkdir -m "$dirmode" -p -- . 2>/dev/null; then
86 <    echo "mkdir -m $dirmode -p -- $*"
87 <    exec mkdir -m "$dirmode" -p -- "$@"
88 <  fi ;;
79 >  '')
80 >    if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
81 >      echo "mkdir -p -- $*"
82 >      exec mkdir -p -- "$@"
83 >    else
84 >      # On NextStep and OpenStep, the 'mkdir' command does not
85 >      # recognize any option.  It will interpret all options as
86 >      # directories to create, and then abort because '.' already
87 >      # exists.
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 >    ;;
105   esac
106  
107   for file
108   do
109 <   set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
110 <   shift
109 >  case $file in
110 >    /*) pathcomp=/ ;;
111 >    *)  pathcomp= ;;
112 >  esac
113 >  oIFS=$IFS
114 >  IFS=/
115 >  set fnord $file
116 >  shift
117 >  IFS=$oIFS
118 >
119 >  for d
120 >  do
121 >    test "x$d" = x && continue
122 >
123 >    pathcomp=$pathcomp$d
124 >    case $pathcomp in
125 >      -*) pathcomp=./$pathcomp ;;
126 >    esac
127 >
128 >    if test ! -d "$pathcomp"; then
129 >      echo "mkdir $pathcomp"
130 >
131 >      mkdir "$pathcomp" || lasterr=$?
132 >
133 >      if test ! -d "$pathcomp"; then
134 >        errstatus=$lasterr
135 >      else
136 >        if test ! -z "$dirmode"; then
137 >          echo "chmod $dirmode $pathcomp"
138 >          lasterr=
139 >          chmod "$dirmode" "$pathcomp" || lasterr=$?
140  
141 <   pathcomp=
142 <   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
141 >          if test ! -z "$lasterr"; then
142 >            errstatus=$lasterr
143            fi
144          fi
145 <     fi
145 >      fi
146 >    fi
147  
148 <     pathcomp="$pathcomp/"
149 <   done
148 >    pathcomp=$pathcomp/
149 >  done
150   done
151  
152   exit $errstatus
153  
154   # Local Variables:
155   # mode: shell-script
156 < # 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"
162   # End:
99 # mkinstalldirs ends here

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines