(linenum→info "unix/slp.c:2238")

gauche/0.8.12/gc/mkinstalldirs

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