~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

Linux Cross Reference
Tina5/tina-libs/mkinstalldirs

Version: ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  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
  6 
  7 errstatus=0
  8 dirmode=""
  9 
 10 usage="\
 11 Usage: mkinstalldirs [-h] [--help] [-m mode] dir ..."
 12 
 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; exit 0 ;;
 18      -m )                                       # -m PERM arg
 19         shift
 20         test $# -eq 0 && { echo "${usage}" 1>&2; exit 1; }
 21         dirmode="${1}"
 22         shift ;;
 23      -- ) shift; break ;;                       # stop option processing
 24      -* ) echo "${usage}" 1>&2; exit 1 ;;       # unknown option
 25      * )  break ;;                              # first non-opt arg
 26    esac
 27 done
 28 
 29 for file
 30 do
 31   if test -d "$file"; then
 32     shift
 33   else
 34     break
 35   fi
 36 done
 37 
 38 case $# in
 39 0) exit 0 ;;
 40 esac
 41 
 42 case $dirmode in
 43 '')
 44   if mkdir -p -- . 2>/dev/null; then
 45     echo "mkdir -p -- $*"
 46     exec mkdir -p -- "$@"
 47   fi ;;
 48 *)
 49   if mkdir -m "$dirmode" -p -- . 2>/dev/null; then
 50     echo "mkdir -m $dirmode -p -- $*"
 51     exec mkdir -m "$dirmode" -p -- "$@"
 52   fi ;;
 53 esac
 54 
 55 for file
 56 do
 57    set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
 58    shift
 59 
 60    pathcomp=
 61    for d
 62    do
 63      pathcomp="$pathcomp$d"
 64      case "$pathcomp" in
 65        -* ) pathcomp=./$pathcomp ;;
 66      esac
 67 
 68      if test ! -d "$pathcomp"; then
 69         echo "mkdir $pathcomp"
 70 
 71         mkdir "$pathcomp" || lasterr=$?
 72 
 73         if test ! -d "$pathcomp"; then
 74           errstatus=$lasterr
 75         else
 76           if test ! -z "$dirmode"; then
 77              echo "chmod $dirmode $pathcomp"
 78 
 79              lasterr=""
 80              chmod "$dirmode" "$pathcomp" || lasterr=$?
 81 
 82              if test ! -z "$lasterr"; then
 83                errstatus=$lasterr
 84              fi
 85           fi
 86         fi
 87      fi
 88 
 89      pathcomp="$pathcomp/"
 90    done
 91 done
 92 
 93 exit $errstatus
 94 
 95 # Local Variables:
 96 # mode: shell-script
 97 # sh-indentation: 3
 98 # End:
 99 # mkinstalldirs ends here

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

This page was automatically generated by the LXR engine.
Visit the LXR main site for more information.