tmkinstalldirs - vaccinewars - be a doctor and try to vaccinate the world
 (HTM) git clone git://src.adamsgaard.dk/vaccinewars
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
       tmkinstalldirs (3538B)
       ---
            1 #! /bin/sh
            2 # mkinstalldirs --- make directory hierarchy
            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=
           19 
           20 usage="\
           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"
           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
           60 do
           61   if test -d "$file"; then
           62     shift
           63   else
           64     break
           65   fi
           66 done
           67 
           68 case $# in
           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 --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   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           if test ! -z "$lasterr"; then
          142             errstatus=$lasterr
          143           fi
          144         fi
          145       fi
          146     fi
          147 
          148     pathcomp=$pathcomp/
          149   done
          150 done
          151 
          152 exit $errstatus
          153 
          154 # Local Variables:
          155 # mode: shell-script
          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: