diff options
| author | Fumitoshi UKAI <ukai@debian.or.jp> | 2002-07-10 14:21:11 +0000 | 
|---|---|---|
| committer | Fumitoshi UKAI <ukai@debian.or.jp> | 2002-07-10 14:21:11 +0000 | 
| commit | bb118b7356439a930be13962ced5f36aab9f74bf (patch) | |
| tree | 5a9fad8dd6dc7f236bfc8e6b22c04cad0b837928 /gc/mkinstalldirs | |
| parent | delete old ftp site (diff) | |
| download | w3m-bb118b7356439a930be13962ced5f36aab9f74bf.tar.gz w3m-bb118b7356439a930be13962ced5f36aab9f74bf.zip | |
import gc6.1alpha5
Diffstat (limited to '')
| -rw-r--r-- | gc/mkinstalldirs | 81 | 
1 files changed, 73 insertions, 8 deletions
| diff --git a/gc/mkinstalldirs b/gc/mkinstalldirs index cc8783e..7327766 100644 --- a/gc/mkinstalldirs +++ b/gc/mkinstalldirs @@ -2,29 +2,90 @@  # mkinstalldirs --- make directory hierarchy  # Author: Noah Friedman <friedman@prep.ai.mit.edu>  # Created: 1993-05-16 -# Last modified: 1994-03-25  # Public domain +# $Id: mkinstalldirs,v 1.2 2002/07/10 14:21:16 ukai Exp $ +  errstatus=0 +dirmode="" + +usage="\ +Usage: mkinstalldirs [-h] [--help] [-m mode] 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 ;; +     -- ) shift; break ;;			# stop option processing +     -* ) echo "${usage}" 1>&2; exit 1 ;;	# unknown option +     * )  break ;;				# first non-opt arg +   esac +done + +for file +do +  if test -d "$file"; then +    shift +  else +    break +  fi +done + +case $# in +0) exit 0 ;; +esac -for file in ${1+"$@"} ; do  +case $dirmode in +'') +  if mkdir -p -- . 2>/dev/null; then +    echo "mkdir -p -- $*" +    exec mkdir -p -- "$@" +  fi ;; +*) +  if mkdir -m "$dirmode" -p -- . 2>/dev/null; then +    echo "mkdir -m $dirmode -p -- $*" +    exec mkdir -m "$dirmode" -p -- "$@" +  fi ;; +esac + +for file +do     set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`     shift     pathcomp= -   for d in ${1+"$@"} ; do +   for d +   do       pathcomp="$pathcomp$d"       case "$pathcomp" in         -* ) pathcomp=./$pathcomp ;;       esac       if test ! -d "$pathcomp"; then -        echo "mkdir $pathcomp" 1>&2 -        mkdir "$pathcomp" > /dev/null 2>&1 || lasterr=$? -     fi +	echo "mkdir $pathcomp" -     if test ! -d "$pathcomp"; then -	errstatus=$lasterr +	mkdir "$pathcomp" || lasterr=$? + +	if test ! -d "$pathcomp"; then +	  errstatus=$lasterr +	else +	  if test ! -z "$dirmode"; then +	     echo "chmod $dirmode $pathcomp" + +	     lasterr="" +	     chmod "$dirmode" "$pathcomp" || lasterr=$? + +	     if test ! -z "$lasterr"; then +	       errstatus=$lasterr +	     fi +	  fi +	fi       fi       pathcomp="$pathcomp/" @@ -33,4 +94,8 @@ done  exit $errstatus +# Local Variables: +# mode: shell-script +# sh-indentation: 3 +# End:  # mkinstalldirs ends here | 
