/[grub]/grub/mkinstalldirs
ViewVC logotype

Diff of /grub/mkinstalldirs

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

revision 1.3 by okuji, Sun Jun 13 17:49:48 2004 UTC revision 1.4 by okuji, Sun May 8 02:51:51 2005 UTC
# Line 1  Line 1 
1  #! /bin/sh  #! /bin/sh
2  # mkinstalldirs --- make directory hierarchy  # mkinstalldirs --- make directory hierarchy
3    
4  scriptversion=2003-11-08.23  scriptversion=2004-02-15.20
5    
6  # Original author: Noah Friedman <friedman@prep.ai.mit.edu>  # Original author: Noah Friedman <friedman@prep.ai.mit.edu>
7  # Created: 1993-05-16  # Created: 1993-05-16
# Line 66  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      else
# Line 77  case $dirmode in Line 83  case $dirmode in
83        # directories to create, and then abort because `.' already        # directories to create, and then abort because `.' already
84        # exists.        # exists.
85        test -d ./-p && rmdir ./-p        test -d ./-p && rmdir ./-p
86        test -d ./-- && rmdir ./--        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      else
95        # Clean up after NextStep and OpenStep mkdir.        # Clean up after NextStep and OpenStep mkdir.
96        for d in ./-m ./-p ./-- "./$dirmode";        for d in ./-m ./-p ./--version "./$dirmode";
97        do        do
98          test -d $d && rmdir $d          test -d $d && rmdir $d
99        done        done

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

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