Diff for /gnujdoc/mkinstalldirs between versions 1.2 and 1.3

version 1.2, 2002/03/12 12:37:08 version 1.3, 2005/05/31 12:09:13
Line 1 Line 1
 #! /bin/sh  #! /bin/sh
 # mkinstalldirs --- make directory hierarchy  # mkinstalldirs --- make directory hierarchy
 # Author: Noah Friedman <friedman@prep.ai.mit.edu>  
 # Created: 1993-05-16  
 # Public domain  
   
 # $Id$  scriptversion=2005-02-02.21
   
   # Original author: Noah Friedman <friedman@prep.ai.mit.edu>
   # Created: 1993-05-16
   # Public domain.
   #
   # This file is maintained in Automake, please report
   # bugs to <bug-automake@gnu.org> or send patches to
   # <automake-patches@gnu.org>.
   
 errstatus=0  errstatus=0
   dirmode=""
   
   usage="\
   Usage: mkinstalldirs [-h] [--help] [--version] [-m MODE] DIR ...
   
   Create each directory DIR (with mode MODE, if specified), including all
   leading file name components.
   
   Report bugs to <bug-automake@gnu.org>."
   
   # process command line arguments
   while test $# -gt 0 ; do
     case $1 in
       -h | --help | --h*)         # -h for help
         echo "$usage"
         exit $?
         ;;
       -m)                         # -m PERM arg
         shift
         test $# -eq 0 && { echo "$usage" 1>&2; exit 1; }
         dirmode=$1
         shift
         ;;
       --version)
         echo "$0 $scriptversion"
         exit $?
         ;;
       --)                         # stop option processing
         shift
         break
         ;;
       -*)                         # unknown option
         echo "$usage" 1>&2
         exit 1
         ;;
       *)                          # first non-opt arg
         break
         ;;
     esac
   done
   
   for file
   do
     if test -d "$file"; then
       shift
     else
       break
     fi
   done
   
   case $# in
     0) exit 0 ;;
   esac
   
   # Solaris 8's mkdir -p isn't thread-safe.  If you mkdir -p a/b and
   # mkdir -p a/c at the same time, both will detect that a is missing,
   # one will create a, then the other will try to create a and die with
   # a "File exists" error.  This is a problem when calling mkinstalldirs
   # from a parallel make.  We use --version in the probe to restrict
   # ourselves to GNU mkdir, which is thread-safe.
   case $dirmode in
     '')
       if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
         echo "mkdir -p -- $*"
         exec mkdir -p -- "$@"
       else
         # On NextStep and OpenStep, the `mkdir' command does not
         # recognize any option.  It will interpret all options as
         # directories to create, and then abort because `.' already
         # exists.
         test -d ./-p && rmdir ./-p
         test -d ./--version && rmdir ./--version
       fi
       ;;
     *)
       if mkdir -m "$dirmode" -p --version . >/dev/null 2>&1 &&
          test ! -d ./--version; then
         echo "mkdir -m $dirmode -p -- $*"
         exec mkdir -m "$dirmode" -p -- "$@"
       else
         # Clean up after NextStep and OpenStep mkdir.
         for d in ./-m ./-p ./--version "./$dirmode";
         do
           test -d $d && rmdir $d
         done
       fi
       ;;
   esac
   
 for file  for file
 do  do
    set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`    set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
    shift    shift
   
    pathcomp=    pathcomp=
    for d    for d
    do    do
      pathcomp="$pathcomp$d"      pathcomp="$pathcomp$d"
      case "$pathcomp" in      case $pathcomp in
        -* ) pathcomp=./$pathcomp ;;        -*) pathcomp=./$pathcomp ;;
      esac      esac
   
      if test ! -d "$pathcomp"; then      if test ! -d "$pathcomp"; then
         echo "mkdir $pathcomp"        echo "mkdir $pathcomp"
   
         mkdir "$pathcomp" || lasterr=$?        mkdir "$pathcomp" || lasterr=$?
   
         if test ! -d "$pathcomp"; then        if test ! -d "$pathcomp"; then
           errstatus=$lasterr          errstatus=$lasterr
         fi        else
      fi          if test ! -z "$dirmode"; then
             echo "chmod $dirmode $pathcomp"
             lasterr=""
             chmod "$dirmode" "$pathcomp" || lasterr=$?
   
             if test ! -z "$lasterr"; then
               errstatus=$lasterr
             fi
           fi
         fi
       fi
   
      pathcomp="$pathcomp/"      pathcomp="$pathcomp/"
    done    done
 done  done
   
 exit $errstatus  exit $errstatus
   
 # mkinstalldirs ends here  # Local Variables:
   # mode: shell-script
   # sh-indentation: 2
   # eval: (add-hook 'write-file-hooks 'time-stamp)
   # time-stamp-start: "scriptversion="
   # time-stamp-format: "%:y-%02m-%02d.%02H"
   # time-stamp-end: "$"
   # End:

Removed from v.1.2  
changed lines
  Added in v.1.3


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>