source: trunk/third/gail/mkinstalldirs @ 20902

Revision 20902, 1.9 KB checked in by ghudson, 20 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r20901, which included commits to RCS files with non-trunk default branches.
  • Property svn:executable set to *
RevLine 
[18340]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
[20901]8dirmode=""
[18340]9
[20901]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
[18340]40for file
41do
[20901]42  if test -d "$file"; then
43    shift
44  else
45    break
46  fi
47done
[18340]48
[20901]49case $# in
50  0) exit 0 ;;
51esac
[18340]52
[20901]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
[18340]67
[20901]68for file
69do
70  set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
71  shift
[18340]72
[20901]73  pathcomp=
74  for d
75  do
76    pathcomp="$pathcomp$d"
77    case $pathcomp in
78      -*) pathcomp=./$pathcomp ;;
79    esac
[18340]80
[20901]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
[18340]103done
104
105exit $errstatus
106
[20901]107# Local Variables:
108# mode: shell-script
109# sh-indentation: 2
110# End:
[18340]111# mkinstalldirs ends here
Note: See TracBrowser for help on using the repository browser.