Mercurial > emacs
annotate mkinstalldirs @ 98182:19ec1646fe6c
The Rmail/mbox merge has been abandoned in favor of a restart using
the current rmail.el file. A comprehensive list of changes will be
supplied when pmail.el is morphed back into rmail.el
The current status is that pmail.el supports basic Rmail navigation
(no summary support) and shows the current message in a special
buffer using buffer-swap-text. No decoding is done yet. That is the
next step.
author | Paul Reilly <pmr@pajato.com> |
---|---|
date | Mon, 15 Sep 2008 20:56:53 +0000 |
parents | 730155197b96 |
children |
rev | line source |
---|---|
25880 | 1 #! /bin/sh |
2 # mkinstalldirs --- make directory hierarchy | |
81066
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
3 |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
4 scriptversion=2006-05-11.19 |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
5 |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
6 # Original author: Noah Friedman <friedman@prep.ai.mit.edu> |
25880 | 7 # Created: 1993-05-16 |
81066
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
8 # Public domain. |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
9 # |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
10 # This file is maintained in Automake, please report |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
11 # bugs to <bug-automake@gnu.org> or send patches to |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
12 # <automake-patches@gnu.org>. |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
13 |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
14 nl=' |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
15 ' |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
16 IFS=" "" $nl" |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
17 errstatus=0 |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
18 dirmode= |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
19 |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
20 usage="\ |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
21 Usage: mkinstalldirs [-h] [--help] [--version] [-m MODE] DIR ... |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
22 |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
23 Create each directory DIR (with mode MODE, if specified), including all |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
24 leading file name components. |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
25 |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
26 Report bugs to <bug-automake@gnu.org>." |
25880 | 27 |
81066
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
28 # process command line arguments |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
29 while test $# -gt 0 ; do |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
30 case $1 in |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
31 -h | --help | --h*) # -h for help |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
32 echo "$usage" |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
33 exit $? |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
34 ;; |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
35 -m) # -m PERM arg |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
36 shift |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
37 test $# -eq 0 && { echo "$usage" 1>&2; exit 1; } |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
38 dirmode=$1 |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
39 shift |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
40 ;; |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
41 --version) |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
42 echo "$0 $scriptversion" |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
43 exit $? |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
44 ;; |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
45 --) # stop option processing |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
46 shift |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
47 break |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
48 ;; |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
49 -*) # unknown option |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
50 echo "$usage" 1>&2 |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
51 exit 1 |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
52 ;; |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
53 *) # first non-opt arg |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
54 break |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
55 ;; |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
56 esac |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
57 done |
25880 | 58 |
59 for file | |
60 do | |
81066
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
61 if test -d "$file"; then |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
62 shift |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
63 else |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
64 break |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
65 fi |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
66 done |
25880 | 67 |
81066
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
68 case $# in |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
69 0) exit 0 ;; |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
70 esac |
25880 | 71 |
81066
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
72 # Solaris 8's mkdir -p isn't thread-safe. If you mkdir -p a/b and |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
73 # mkdir -p a/c at the same time, both will detect that a is missing, |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
74 # one will create a, then the other will try to create a and die with |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
75 # a "File exists" error. This is a problem when calling mkinstalldirs |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
76 # from a parallel make. We use --version in the probe to restrict |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
77 # ourselves to GNU mkdir, which is thread-safe. |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
78 case $dirmode in |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
79 '') |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
80 if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
81 echo "mkdir -p -- $*" |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
82 exec mkdir -p -- "$@" |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
83 else |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
84 # On NextStep and OpenStep, the `mkdir' command does not |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
85 # recognize any option. It will interpret all options as |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
86 # directories to create, and then abort because `.' already |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
87 # exists. |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
88 test -d ./-p && rmdir ./-p |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
89 test -d ./--version && rmdir ./--version |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
90 fi |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
91 ;; |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
92 *) |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
93 if mkdir -m "$dirmode" -p --version . >/dev/null 2>&1 && |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
94 test ! -d ./--version; then |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
95 echo "mkdir -m $dirmode -p -- $*" |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
96 exec mkdir -m "$dirmode" -p -- "$@" |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
97 else |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
98 # Clean up after NextStep and OpenStep mkdir. |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
99 for d in ./-m ./-p ./--version "./$dirmode"; |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
100 do |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
101 test -d $d && rmdir $d |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
102 done |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
103 fi |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
104 ;; |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
105 esac |
25880 | 106 |
81066
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
107 for file |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
108 do |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
109 case $file in |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
110 /*) pathcomp=/ ;; |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
111 *) pathcomp= ;; |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
112 esac |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
113 oIFS=$IFS |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
114 IFS=/ |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
115 set fnord $file |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
116 shift |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
117 IFS=$oIFS |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
118 |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
119 for d |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
120 do |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
121 test "x$d" = x && continue |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
122 |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
123 pathcomp=$pathcomp$d |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
124 case $pathcomp in |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
125 -*) pathcomp=./$pathcomp ;; |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
126 esac |
25880 | 127 |
81066
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
128 if test ! -d "$pathcomp"; then |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
129 echo "mkdir $pathcomp" |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
130 |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
131 mkdir "$pathcomp" || lasterr=$? |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
132 |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
133 if test ! -d "$pathcomp"; then |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
134 errstatus=$lasterr |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
135 else |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
136 if test ! -z "$dirmode"; then |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
137 echo "chmod $dirmode $pathcomp" |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
138 lasterr= |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
139 chmod "$dirmode" "$pathcomp" || lasterr=$? |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
140 |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
141 if test ! -z "$lasterr"; then |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
142 errstatus=$lasterr |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
143 fi |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
144 fi |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
145 fi |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
146 fi |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
147 |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
148 pathcomp=$pathcomp/ |
730155197b96
Sync to latest version from automake.
Chong Yidong <cyd@stupidchicken.com>
parents:
54836
diff
changeset
|
149 done |
25880 | 150 done |
151 | |
152 exit $errstatus |