source: branches/2.2.2/mondo/mkinstalldirs

Last change on this file was 541, checked in by bcornec, 13 years ago

Stable is reverted to r436 (2.0.7) to put it in line with 2.0.8 and start from there over

  • Property svn:executable set to *
  • Property svn:keywords set to Id
File size: 1.8 KB
Line 
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; 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
29for file
30do
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
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
69    echo "mkdir $pathcomp"
70
71    mkdir "$pathcomp" || lasterr=$?
72
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
87     fi
88
89     pathcomp="$pathcomp/"
90   done
91done
92
93exit $errstatus
94
95# Local Variables:
96# mode: shell-script
97# sh-indentation: 3
98# End:
99# mkinstalldirs ends here
Note: See TracBrowser for help on using the repository browser.