/[gnokii]/gnokii/config/mkinstalldirs
ViewVC logotype

Diff of /gnokii/config/mkinstalldirs

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.4 by pkot, Tue Apr 13 09:08:24 2004 UTC revision 1.5 by pkot, Mon May 16 08:53:36 2005 UTC
# Line 1  Line 1 
1  #! /bin/sh  #! /bin/sh
2  # mkinstalldirs --- make directory hierarchy  # mkinstalldirs --- make directory hierarchy
3  # Author: Noah Friedman <friedman@prep.ai.mit.edu>  
4    scriptversion=2004-02-15.20
5    
6    # Original author: Noah Friedman <friedman@prep.ai.mit.edu>
7  # Created: 1993-05-16  # Created: 1993-05-16
8  # Public domain  # 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  errstatus=0  errstatus=0
15  dirmode=""  dirmode=""
16    
17  usage="\  usage="\
18  Usage: mkinstalldirs [-h] [--help] [-m mode] dir ..."  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>."
24    
25  # process command line arguments  # process command line arguments
26  while test $# -gt 0 ; do  while test $# -gt 0 ; do
27    case $1 in    case $1 in
28      -h | --help | --h*)         # -h for help      -h | --help | --h*)         # -h for help
29        echo "$usage" 1>&2        echo "$usage"
30        exit 0        exit 0
31        ;;        ;;
32      -m)                         # -m PERM arg      -m)                         # -m PERM arg
# Line 23  while test $# -gt 0 ; do Line 35  while test $# -gt 0 ; do
35        dirmode=$1        dirmode=$1
36        shift        shift
37        ;;        ;;
38        --version)
39          echo "$0 $scriptversion"
40          exit 0
41          ;;
42      --)                         # stop option processing      --)                         # stop option processing
43        shift        shift
44        break        break
# Line 50  case $# in Line 66  case $# in
66    0) exit 0 ;;    0) exit 0 ;;
67  esac  esac
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.
75  case $dirmode in  case $dirmode in
76    '')    '')
77      if mkdir -p -- . 2>/dev/null; then      if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
78        echo "mkdir -p -- $*"        echo "mkdir -p -- $*"
79        exec mkdir -p -- "$@"        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
87      fi      fi
88      ;;      ;;
89    *)    *)
90      if mkdir -m "$dirmode" -p -- . 2>/dev/null; then      if mkdir -m "$dirmode" -p --version . >/dev/null 2>&1 &&
91           test ! -d ./--version; then
92        echo "mkdir -m $dirmode -p -- $*"        echo "mkdir -m $dirmode -p -- $*"
93        exec mkdir -m "$dirmode" -p -- "$@"        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
100      fi      fi
101      ;;      ;;
102  esac  esac
# Line 84  do Line 120  do
120        mkdir "$pathcomp" || lasterr=$?        mkdir "$pathcomp" || lasterr=$?
121    
122        if test ! -d "$pathcomp"; then        if test ! -d "$pathcomp"; then
123          errstatus=$lasterr          errstatus=$lasterr
124        else        else
125          if test ! -z "$dirmode"; then          if test ! -z "$dirmode"; then
126            echo "chmod $dirmode $pathcomp"            echo "chmod $dirmode $pathcomp"
127            lasterr=""            lasterr=""
128            chmod "$dirmode" "$pathcomp" || lasterr=$?            chmod "$dirmode" "$pathcomp" || lasterr=$?
129    
130            if test ! -z "$lasterr"; then            if test ! -z "$lasterr"; then
131              errstatus=$lasterr              errstatus=$lasterr
132            fi            fi
133          fi          fi
134        fi        fi
135      fi      fi
136    
# Line 107  exit $errstatus Line 143  exit $errstatus
143  # Local Variables:  # Local Variables:
144  # mode: shell-script  # mode: shell-script
145  # sh-indentation: 2  # 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: "$"
150  # End:  # End:
 # mkinstalldirs ends here  

Legend:
Removed from v.1.4  
changed lines
  Added in v.1.5

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26