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