diff --git a/ChangeLog b/ChangeLog index 1ea72621..c0be2d30 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +1999-04-10 Ben Elliston + + * mkinstalldirs: Add `-m' flag to specify the mode of a newly + created directory. Add command line usage and `-h', `--help' + options. Contributed by Jeff Garzik . + 1999-04-08 Ben Elliston * acspecific.m4 (AC_PROG_CC): Try using the `cl' C compiler under diff --git a/mkinstalldirs b/mkinstalldirs index 6b3b5fc5..70f6e580 100755 --- a/mkinstalldirs +++ b/mkinstalldirs @@ -7,6 +7,26 @@ # $Id$ 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 @@ -28,6 +48,17 @@ do 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 @@ -37,4 +68,7 @@ done exit $errstatus -# mkinstalldirs ends here +# Local Variables: +# mode:shell-script +# sh-indentation:3 +# End: