#! /bin/sh # mkinstalldirs --- make directory hierarchy # Author: Noah Friedman # Created: 1993-05-16 # Public domain # $Id: mkinstalldirs,v 1.4 2005-04-01 13:48:30 gja-guest Exp $ errstatus=0 dirmode="" owner="" group="" chmodprog="${CHMODPROG-chmod}" chownprog="${CHOWNPROG-chown}" chgrpprog="${CHOWNPROG-chgrp}" usage="\ Usage: mkinstalldirs [-h] [--help] [-m mode] [-o owner] [-g group] dir ..." # process command line arguments while test $# -gt 0 ; do case "${1}" in -h | --help | --h* ) # -h for help echo "${usage}" 1>&2; exit 0 ;; -m ) # -m PERM arg shift test $# -eq 0 && { echo "${usage}" 1>&2; exit 1; } dirmode="${1}" shift ;; -o ) # -o OWNER arg shift test $# -eq 0 && { echo "${usage}" 1>&2; exit 1; } owner="${1}" shift ;; -g ) # -g OWNER arg shift test $# -eq 0 && { echo "${usage}" 1>&2; exit 1; } group="${1}" shift ;; -- ) shift; break ;; # stop option processing -* ) echo "${usage}" 1>&2; exit 1 ;; # unknown option * ) break ;; # first non-opt arg esac done for file do set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` shift pathcomp= for d do pathcomp="$pathcomp$d" case "$pathcomp" in -* ) pathcomp=./$pathcomp ;; esac if test ! -d "$pathcomp" -a ! -d "$pathcomp/"; then echo "mkdir $pathcomp" mkdir "$pathcomp" || lasterr=$? if test ! -d "$pathcomp" -a ! -d "$pathcomp/"; then errstatus=$lasterr else if test ! -z "$dirmode"; then echo "$chmodprog $dirmode $pathcomp" lasterr="" $chmodprog $dirmode "$pathcomp" || lasterr=$? if test ! -z "$lasterr"; then errstatus=$lasterr fi fi if test ! -z "$owner"; then echo "$chownprog $owner $pathcomp" lasterr="" $chownprog $owner "$pathcomp" || lasterr=$? if test ! -z "$lasterr"; then errstatus=$lasterr fi fi if test ! -z "$group"; then echo "$chgrpprog $group $pathcomp" lasterr="" $chgrpprog $group "$pathcomp" || lasterr=$? if test ! -z "$lasterr"; then errstatus=$lasterr fi fi fi fi pathcomp="$pathcomp/" done done exit $errstatus # Local Variables: # mode:shell-script # sh-indentation:3 # End: