nkeynes@491: #! /bin/sh nkeynes@491: # mkinstalldirs --- make directory hierarchy nkeynes@491: # Author: Noah Friedman nkeynes@491: # Created: 1993-05-16 nkeynes@491: # Public domain nkeynes@491: nkeynes@491: errstatus=0 nkeynes@491: dirmode="" nkeynes@491: nkeynes@491: usage="\ nkeynes@491: Usage: mkinstalldirs [-h] [--help] [-m mode] dir ..." nkeynes@491: nkeynes@491: # process command line arguments nkeynes@491: while test $# -gt 0 ; do nkeynes@491: case $1 in nkeynes@491: -h | --help | --h*) # -h for help nkeynes@491: echo "$usage" 1>&2 nkeynes@491: exit 0 nkeynes@491: ;; nkeynes@491: -m) # -m PERM arg nkeynes@491: shift nkeynes@491: test $# -eq 0 && { echo "$usage" 1>&2; exit 1; } nkeynes@491: dirmode=$1 nkeynes@491: shift nkeynes@491: ;; nkeynes@491: --) # stop option processing nkeynes@491: shift nkeynes@491: break nkeynes@491: ;; nkeynes@491: -*) # unknown option nkeynes@491: echo "$usage" 1>&2 nkeynes@491: exit 1 nkeynes@491: ;; nkeynes@491: *) # first non-opt arg nkeynes@491: break nkeynes@491: ;; nkeynes@491: esac nkeynes@491: done nkeynes@491: nkeynes@491: for file nkeynes@491: do nkeynes@491: if test -d "$file"; then nkeynes@491: shift nkeynes@491: else nkeynes@491: break nkeynes@491: fi nkeynes@491: done nkeynes@491: nkeynes@491: case $# in nkeynes@491: 0) exit 0 ;; nkeynes@491: esac nkeynes@491: nkeynes@491: case $dirmode in nkeynes@491: '') nkeynes@491: if mkdir -p -- . 2>/dev/null; then nkeynes@491: echo "mkdir -p -- $*" nkeynes@491: exec mkdir -p -- "$@" nkeynes@491: fi nkeynes@491: ;; nkeynes@491: *) nkeynes@491: if mkdir -m "$dirmode" -p -- . 2>/dev/null; then nkeynes@491: echo "mkdir -m $dirmode -p -- $*" nkeynes@491: exec mkdir -m "$dirmode" -p -- "$@" nkeynes@491: fi nkeynes@491: ;; nkeynes@491: esac nkeynes@491: nkeynes@491: for file nkeynes@491: do nkeynes@491: set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` nkeynes@491: shift nkeynes@491: nkeynes@491: pathcomp= nkeynes@491: for d nkeynes@491: do nkeynes@491: pathcomp="$pathcomp$d" nkeynes@491: case $pathcomp in nkeynes@491: -*) pathcomp=./$pathcomp ;; nkeynes@491: esac nkeynes@491: nkeynes@491: if test ! -d "$pathcomp"; then nkeynes@491: echo "mkdir $pathcomp" nkeynes@491: nkeynes@491: mkdir "$pathcomp" || lasterr=$? nkeynes@491: nkeynes@491: if test ! -d "$pathcomp"; then nkeynes@491: errstatus=$lasterr nkeynes@491: else nkeynes@491: if test ! -z "$dirmode"; then nkeynes@491: echo "chmod $dirmode $pathcomp" nkeynes@491: lasterr="" nkeynes@491: chmod "$dirmode" "$pathcomp" || lasterr=$? nkeynes@491: nkeynes@491: if test ! -z "$lasterr"; then nkeynes@491: errstatus=$lasterr nkeynes@491: fi nkeynes@491: fi nkeynes@491: fi nkeynes@491: fi nkeynes@491: nkeynes@491: pathcomp="$pathcomp/" nkeynes@491: done nkeynes@491: done nkeynes@491: nkeynes@491: exit $errstatus nkeynes@491: nkeynes@491: # Local Variables: nkeynes@491: # mode: shell-script nkeynes@491: # sh-indentation: 2 nkeynes@491: # End: nkeynes@491: # mkinstalldirs ends here