~ubuntu-branches/ubuntu/breezy/sage/breezy

« back to all changes in this revision

Viewing changes to mkinstalldirs

  • Committer: Bazaar Package Importer
  • Author(s): Michael Koch
  • Date: 2004-05-16 09:53:10 UTC
  • Revision ID: james.westby@ubuntu.com-20040516095310-yt48w3ftegoo2p48
Tags: upstream-0.1.1
ImportĀ upstreamĀ versionĀ 0.1.1

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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; 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
 
27
done
 
28
 
 
29
for file
 
30
do
 
31
  if test -d "$file"; then
 
32
    shift
 
33
  else
 
34
    break
 
35
  fi
 
36
done
 
37
 
 
38
case $# in
 
39
0) exit 0 ;;
 
40
esac
 
41
 
 
42
case $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 ;;
 
53
esac
 
54
 
 
55
for file
 
56
do
 
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
 
91
done
 
92
 
 
93
exit $errstatus
 
94
 
 
95
# Local Variables:
 
96
# mode: shell-script
 
97
# sh-indentation: 3
 
98
# End:
 
99
# mkinstalldirs ends here