Search
lxdream.org :: lxdream/mkinstalldirs
lxdream 0.9.1
released Jun 29
Download Now
filename mkinstalldirs
changeset 491:515c81624943
author Nathan Keynes <nkeynes@lxdream.org>
date Thu Apr 07 21:42:55 2011 +1000 (8 years ago)
permissions -rwxr-xr-x
last change Add german translation update from Riemann80, thanks!
view annotate diff log raw
     1 #! /bin/sh
     2 # mkinstalldirs --- make directory hierarchy
     3 # Author: Noah Friedman <friedman@prep.ai.mit.edu>
     4 # Created: 1993-05-16
     5 # Public domain
     7 errstatus=0
     8 dirmode=""
    10 usage="\
    11 Usage: mkinstalldirs [-h] [--help] [-m mode] dir ..."
    13 # process command line arguments
    14 while test $# -gt 0 ; do
    15   case $1 in
    16     -h | --help | --h*)         # -h for help
    17       echo "$usage" 1>&2
    18       exit 0
    19       ;;
    20     -m)                         # -m PERM arg
    21       shift
    22       test $# -eq 0 && { echo "$usage" 1>&2; exit 1; }
    23       dirmode=$1
    24       shift
    25       ;;
    26     --)                         # stop option processing
    27       shift
    28       break
    29       ;;
    30     -*)                         # unknown option
    31       echo "$usage" 1>&2
    32       exit 1
    33       ;;
    34     *)                          # first non-opt arg
    35       break
    36       ;;
    37   esac
    38 done
    40 for file
    41 do
    42   if test -d "$file"; then
    43     shift
    44   else
    45     break
    46   fi
    47 done
    49 case $# in
    50   0) exit 0 ;;
    51 esac
    53 case $dirmode in
    54   '')
    55     if mkdir -p -- . 2>/dev/null; then
    56       echo "mkdir -p -- $*"
    57       exec mkdir -p -- "$@"
    58     fi
    59     ;;
    60   *)
    61     if mkdir -m "$dirmode" -p -- . 2>/dev/null; then
    62       echo "mkdir -m $dirmode -p -- $*"
    63       exec mkdir -m "$dirmode" -p -- "$@"
    64     fi
    65     ;;
    66 esac
    68 for file
    69 do
    70   set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
    71   shift
    73   pathcomp=
    74   for d
    75   do
    76     pathcomp="$pathcomp$d"
    77     case $pathcomp in
    78       -*) pathcomp=./$pathcomp ;;
    79     esac
    81     if test ! -d "$pathcomp"; then
    82       echo "mkdir $pathcomp"
    84       mkdir "$pathcomp" || lasterr=$?
    86       if test ! -d "$pathcomp"; then
    87   	errstatus=$lasterr
    88       else
    89   	if test ! -z "$dirmode"; then
    90 	  echo "chmod $dirmode $pathcomp"
    91     	  lasterr=""
    92   	  chmod "$dirmode" "$pathcomp" || lasterr=$?
    94   	  if test ! -z "$lasterr"; then
    95   	    errstatus=$lasterr
    96   	  fi
    97   	fi
    98       fi
    99     fi
   101     pathcomp="$pathcomp/"
   102   done
   103 done
   105 exit $errstatus
   107 # Local Variables:
   108 # mode: shell-script
   109 # sh-indentation: 2
   110 # End:
   111 # mkinstalldirs ends here
.