bug-automake
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

common mkinstalldirs?


From: Karl Berry
Subject: common mkinstalldirs?
Date: Fri, 27 Sep 2002 12:34:48 -0400

As with install-sh, I noticed that the mkinstalldirs distributed with
automake is different than the one from glibc/gettext.

This case is a little simpler though, since as far as I can tell the
automake version is a straightforward enhancement of the glibc one, to
handle --help, --version, and -m.

So, perhaps you'd like to consider using the mkinstalldirs from
automake, so we'd have a single version out there.  Diffs below if you
want them ...

Thanks,
karl


*** libc/scripts/mkinstalldirs  Fri May  8 13:55:06 1998
--- automake/lib/mkinstalldirs  Thu Sep 12 13:30:46 2002
***************
*** 5,11 ****
  # Public domain
  
- # $Id: mkinstalldirs,v 1.1 1998/05/08 20:55:06 drepper Exp $
- 
  errstatus=0
  
  for file
--- 5,55 ----
  # Public domain
  
  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
+ 
+ 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
***************
*** 23,33 ****
  
       if test ! -d "$pathcomp"; then
!         echo "mkdir $pathcomp" 1>&2
  
!         mkdir "$pathcomp" || lasterr=$?
  
!         if test ! -d "$pathcomp"; then
!         errstatus=$lasterr
!         fi
       fi
  
--- 67,88 ----
  
       if test ! -d "$pathcomp"; then
!       echo "mkdir $pathcomp"
  
!       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
  
***************
*** 38,40 ****
--- 93,99 ----
  exit $errstatus
  
+ # Local Variables:
+ # mode: shell-script
+ # sh-indentation: 3
+ # End:
  # mkinstalldirs ends here




reply via email to

[Prev in Thread] Current Thread [Next in Thread]