Annotation of embedaddon/mtr/build-aux/mkinstalldirs, revision 1.1.1.1

1.1       misho       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
                      6: 
                      7: errstatus=0
                      8: dirmode=""
                      9: 
                     10: usage="\
                     11: Usage: mkinstalldirs [-h] [--help] [-m mode] dir ..."
                     12: 
                     13: # process command line arguments
                     14: while test $# -gt 0 ; do
                     15:   case $1 in
                     16:     -h | --help | --h*)         # -h for help
                     17:       echo "$usage" 1>&2
                     18:       exit 0
                     19:       ;;
                     20:     -m)                         # -m PERM arg
                     21:       shift
                     22:       test $# -eq 0 && { echo "$usage" 1>&2; exit 1; }
                     23:       dirmode=$1
                     24:       shift
                     25:       ;;
                     26:     --)                         # stop option processing
                     27:       shift
                     28:       break
                     29:       ;;
                     30:     -*)                         # unknown option
                     31:       echo "$usage" 1>&2
                     32:       exit 1
                     33:       ;;
                     34:     *)                          # first non-opt arg
                     35:       break
                     36:       ;;
                     37:   esac
                     38: done
                     39: 
                     40: for file
                     41: do
                     42:   if test -d "$file"; then
                     43:     shift
                     44:   else
                     45:     break
                     46:   fi
                     47: done
                     48: 
                     49: case $# in
                     50:   0) exit 0 ;;
                     51: esac
                     52: 
                     53: case $dirmode in
                     54:   '')
                     55:     if mkdir -p -- . 2>/dev/null; then
                     56:       echo "mkdir -p -- $*"
                     57:       exec mkdir -p -- "$@"
                     58:     fi
                     59:     ;;
                     60:   *)
                     61:     if mkdir -m "$dirmode" -p -- . 2>/dev/null; then
                     62:       echo "mkdir -m $dirmode -p -- $*"
                     63:       exec mkdir -m "$dirmode" -p -- "$@"
                     64:     fi
                     65:     ;;
                     66: esac
                     67: 
                     68: for file
                     69: do
                     70:   set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
                     71:   shift
                     72: 
                     73:   pathcomp=
                     74:   for d
                     75:   do
                     76:     pathcomp="$pathcomp$d"
                     77:     case $pathcomp in
                     78:       -*) pathcomp=./$pathcomp ;;
                     79:     esac
                     80: 
                     81:     if test ! -d "$pathcomp"; then
                     82:       echo "mkdir $pathcomp"
                     83: 
                     84:       mkdir "$pathcomp" || lasterr=$?
                     85: 
                     86:       if test ! -d "$pathcomp"; then
                     87:        errstatus=$lasterr
                     88:       else
                     89:        if test ! -z "$dirmode"; then
                     90:          echo "chmod $dirmode $pathcomp"
                     91:          lasterr=""
                     92:          chmod "$dirmode" "$pathcomp" || lasterr=$?
                     93: 
                     94:          if test ! -z "$lasterr"; then
                     95:            errstatus=$lasterr
                     96:          fi
                     97:        fi
                     98:       fi
                     99:     fi
                    100: 
                    101:     pathcomp="$pathcomp/"
                    102:   done
                    103: done
                    104: 
                    105: exit $errstatus
                    106: 
                    107: # Local Variables:
                    108: # mode: shell-script
                    109: # sh-indentation: 2
                    110: # End:
                    111: # mkinstalldirs ends here

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