PageRenderTime 21ms CodeModel.GetById 12ms app.highlight 7ms RepoModel.GetById 1ms app.codeStats 0ms

/config/mkinstalldirs

https://code.google.com/
Shell | 111 lines | 85 code | 15 blank | 11 comment | 13 complexity | 792922784eade1d03ecb1b33ba8bb7c3 MD5 | raw file
  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
  7errstatus=0
  8dirmode=""
  9
 10usage="\
 11Usage: mkinstalldirs [-h] [--help] [-m mode] dir ..."
 12
 13# process command line arguments
 14while 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
 38done
 39
 40for file
 41do
 42  if test -d "$file"; then
 43    shift
 44  else
 45    break
 46  fi
 47done
 48
 49case $# in
 50  0) exit 0 ;;
 51esac
 52
 53case $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    ;;
 66esac
 67
 68for file
 69do
 70  set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
 71  shift
 72
 73  pathcomp=
 74  for d
 75  do
 76    pathcomp="$pathcomp$d"
 77    case $pathcomp in
 78      -*) pathcomp=./$pathcomp ;;
 79    esac
 80
 81    if test ! -d "$pathcomp"; then
 82      echo "mkdir $pathcomp"
 83
 84      mkdir "$pathcomp" || lasterr=$?
 85
 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=$?
 93
 94  	  if test ! -z "$lasterr"; then
 95  	    errstatus=$lasterr
 96  	  fi
 97  	fi
 98      fi
 99    fi
100
101    pathcomp="$pathcomp/"
102  done
103done
104
105exit $errstatus
106
107# Local Variables:
108# mode: shell-script
109# sh-indentation: 2
110# End:
111# mkinstalldirs ends here