"Fossies" - the Fresh Open Source Software Archive

Member "screentest-2.0/mkinstalldirs" (5 Aug 2007, 1988 Bytes) of package /linux/privat/old/screentest-2.0.tar.gz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) Bash source code syntax highlighting (style: standard) with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code 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 
    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
   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
   39 
   40 for file
   41 do
   42   if test -d "$file"; then
   43     shift
   44   else
   45     break
   46   fi
   47 done
   48 
   49 case $# in
   50   0) exit 0 ;;
   51 esac
   52 
   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
   67 
   68 for file
   69 do
   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
  103 done
  104 
  105 exit $errstatus
  106 
  107 # Local Variables:
  108 # mode: shell-script
  109 # sh-indentation: 2
  110 # End:
  111 # mkinstalldirs ends here