filename | mkinstalldirs |
changeset | 491:515c81624943 |
author | nkeynes |
date | Wed Nov 05 10:05:08 2008 +0000 (15 years ago) |
permissions | -rwxr-xr-x |
last change | Fix (extremely boneheaded) failure to convert pc to physical address before storing in the translation cache (in other words, the translation cache was effectively disabled for MMU code). MMU code is now about 3 times faster... |
view | annotate | diff | log | raw |
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
7 errstatus=0
8 dirmode=""
10 usage="\
11 Usage: mkinstalldirs [-h] [--help] [-m mode] dir ..."
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
40 for file
41 do
42 if test -d "$file"; then
43 shift
44 else
45 break
46 fi
47 done
49 case $# in
50 0) exit 0 ;;
51 esac
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
68 for file
69 do
70 set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
71 shift
73 pathcomp=
74 for d
75 do
76 pathcomp="$pathcomp$d"
77 case $pathcomp in
78 -*) pathcomp=./$pathcomp ;;
79 esac
81 if test ! -d "$pathcomp"; then
82 echo "mkdir $pathcomp"
84 mkdir "$pathcomp" || lasterr=$?
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=$?
94 if test ! -z "$lasterr"; then
95 errstatus=$lasterr
96 fi
97 fi
98 fi
99 fi
101 pathcomp="$pathcomp/"
102 done
103 done
105 exit $errstatus
107 # Local Variables:
108 # mode: shell-script
109 # sh-indentation: 2
110 # End:
111 # mkinstalldirs ends here
.