|
|
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; exit 0 ;; ! 18: -m ) # -m PERM arg ! 19: shift ! 20: test $# -eq 0 && { echo "${usage}" 1>&2; exit 1; } ! 21: dirmode="${1}" ! 22: shift ;; ! 23: -- ) shift; break ;; # stop option processing ! 24: -* ) echo "${usage}" 1>&2; exit 1 ;; # unknown option ! 25: * ) break ;; # first non-opt arg ! 26: esac ! 27: done ! 28: ! 29: for file ! 30: do ! 31: if test -d "$file"; then ! 32: shift ! 33: else ! 34: break ! 35: fi ! 36: done ! 37: ! 38: case $# in ! 39: 0) exit 0 ;; ! 40: esac ! 41: ! 42: case $dirmode in ! 43: '') ! 44: if mkdir -p -- . 2>/dev/null; then ! 45: echo "mkdir -p -- $*" ! 46: exec mkdir -p -- "$@" ! 47: fi ;; ! 48: *) ! 49: if mkdir -m "$dirmode" -p -- . 2>/dev/null; then ! 50: echo "mkdir -m $dirmode -p -- $*" ! 51: exec mkdir -m "$dirmode" -p -- "$@" ! 52: fi ;; ! 53: esac ! 54: ! 55: for file ! 56: do ! 57: set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` ! 58: shift ! 59: ! 60: pathcomp= ! 61: for d ! 62: do ! 63: pathcomp="$pathcomp$d" ! 64: case "$pathcomp" in ! 65: -* ) pathcomp=./$pathcomp ;; ! 66: esac ! 67: ! 68: if test ! -d "$pathcomp"; then ! 69: echo "mkdir $pathcomp" ! 70: ! 71: mkdir "$pathcomp" || lasterr=$? ! 72: ! 73: if test ! -d "$pathcomp"; then ! 74: errstatus=$lasterr ! 75: else ! 76: if test ! -z "$dirmode"; then ! 77: echo "chmod $dirmode $pathcomp" ! 78: ! 79: lasterr="" ! 80: chmod "$dirmode" "$pathcomp" || lasterr=$? ! 81: ! 82: if test ! -z "$lasterr"; then ! 83: errstatus=$lasterr ! 84: fi ! 85: fi ! 86: fi ! 87: fi ! 88: ! 89: pathcomp="$pathcomp/" ! 90: done ! 91: done ! 92: ! 93: exit $errstatus ! 94: ! 95: # Local Variables: ! 96: # mode: shell-script ! 97: # sh-indentation: 3 ! 98: # End: ! 99: # mkinstalldirs ends here
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.