|
|
1.1 ! root 1: #! /bin/sh ! 2: # mkinstalldirs --- make directory hierarchy ! 3: # Author: Noah Friedman <[email protected]> ! 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
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.