source: trunk/third/libxml2/mkinstalldirs @ 20735

Revision 20735, 1.8 KB checked in by ghudson, 20 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r20734, which included commits to RCS files with non-trunk default branches.
  • Property svn:executable set to *
RevLine 
[17095]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
[20734]8dirmode=""
[17095]9
[20734]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; 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
27done
28
[17095]29for file
30do
[20734]31  if test -d "$file"; then
32    shift
33  else
34    break
35  fi
36done
37
38case $# in
390) exit 0 ;;
40esac
41
42case $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 ;;
53esac
54
55for file
56do
[17095]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
[20734]69        echo "mkdir $pathcomp"
[17095]70
[20734]71        mkdir "$pathcomp" || lasterr=$?
[17095]72
[20734]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
[17095]87     fi
88
89     pathcomp="$pathcomp/"
90   done
91done
92
93exit $errstatus
94
[20734]95# Local Variables:
96# mode: shell-script
97# sh-indentation: 3
98# End:
[17095]99# mkinstalldirs ends here
Note: See TracBrowser for help on using the repository browser.