annotate install-sh @ 1147:65e0608e19f7

[gaim-migrate @ 1157] I think toc is mostly working, i tested it remotely. Oscar is somewhat working; switching between options doesn't force you offline anymore, so that's good. adding and removing doesn't force you offline either. another plus. but i'm not sure it always recognizes the changes on the server side. hey, that's what you get with a protocol where the only thing you know about it is what you see on the wire. committer: Tailor Script <tailor@pidgin.im>
author Eric Warmenhoven <eric@warmenhoven.org>
date Mon, 27 Nov 2000 13:47:33 +0000
parents a5ace2e037bc
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
1 #!/bin/sh
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
2 #
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
3 # install - install a program, script, or datafile
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
4 # This comes from X11R5 (mit/util/scripts/install.sh).
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
5 #
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
6 # Copyright 1991 by the Massachusetts Institute of Technology
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
7 #
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
8 # Permission to use, copy, modify, distribute, and sell this software and its
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
9 # documentation for any purpose is hereby granted without fee, provided that
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
10 # the above copyright notice appear in all copies and that both that
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
11 # copyright notice and this permission notice appear in supporting
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
12 # documentation, and that the name of M.I.T. not be used in advertising or
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
13 # publicity pertaining to distribution of the software without specific,
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
14 # written prior permission. M.I.T. makes no representations about the
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
15 # suitability of this software for any purpose. It is provided "as is"
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
16 # without express or implied warranty.
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
17 #
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
18 # Calling this script install-sh is preferred over install.sh, to prevent
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
19 # `make' implicit rules from creating a file called install from it
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
20 # when there is no Makefile.
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
21 #
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
22 # This script is compatible with the BSD install script, but was written
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
23 # from scratch. It can only install one file at a time, a restriction
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
24 # shared with many OS's install programs.
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
25
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
26
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
27 # set DOITPROG to echo to test this script
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
28
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
29 # Don't use :- since 4.3BSD and earlier shells don't like it.
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
30 doit="${DOITPROG-}"
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
31
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
32
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
33 # put in absolute paths if you don't have them in your path; or use env. vars.
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
34
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
35 mvprog="${MVPROG-mv}"
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
36 cpprog="${CPPROG-cp}"
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
37 chmodprog="${CHMODPROG-chmod}"
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
38 chownprog="${CHOWNPROG-chown}"
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
39 chgrpprog="${CHGRPPROG-chgrp}"
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
40 stripprog="${STRIPPROG-strip}"
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
41 rmprog="${RMPROG-rm}"
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
42 mkdirprog="${MKDIRPROG-mkdir}"
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
43
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
44 transformbasename=""
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
45 transform_arg=""
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
46 instcmd="$mvprog"
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
47 chmodcmd="$chmodprog 0755"
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
48 chowncmd=""
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
49 chgrpcmd=""
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
50 stripcmd=""
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
51 rmcmd="$rmprog -f"
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
52 mvcmd="$mvprog"
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
53 src=""
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
54 dst=""
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
55 dir_arg=""
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
56
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
57 while [ x"$1" != x ]; do
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
58 case $1 in
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
59 -c) instcmd="$cpprog"
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
60 shift
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
61 continue;;
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
62
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
63 -d) dir_arg=true
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
64 shift
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
65 continue;;
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
66
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
67 -m) chmodcmd="$chmodprog $2"
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
68 shift
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
69 shift
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
70 continue;;
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
71
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
72 -o) chowncmd="$chownprog $2"
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
73 shift
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
74 shift
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
75 continue;;
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
76
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
77 -g) chgrpcmd="$chgrpprog $2"
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
78 shift
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
79 shift
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
80 continue;;
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
81
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
82 -s) stripcmd="$stripprog"
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
83 shift
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
84 continue;;
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
85
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
86 -t=*) transformarg=`echo $1 | sed 's/-t=//'`
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
87 shift
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
88 continue;;
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
89
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
90 -b=*) transformbasename=`echo $1 | sed 's/-b=//'`
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
91 shift
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
92 continue;;
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
93
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
94 *) if [ x"$src" = x ]
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
95 then
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
96 src=$1
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
97 else
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
98 # this colon is to work around a 386BSD /bin/sh bug
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
99 :
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
100 dst=$1
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
101 fi
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
102 shift
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
103 continue;;
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
104 esac
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
105 done
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
106
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
107 if [ x"$src" = x ]
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
108 then
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
109 echo "install: no input file specified"
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
110 exit 1
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
111 else
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
112 true
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
113 fi
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
114
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
115 if [ x"$dir_arg" != x ]; then
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
116 dst=$src
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
117 src=""
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
118
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
119 if [ -d $dst ]; then
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
120 instcmd=:
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
121 else
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
122 instcmd=mkdir
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
123 fi
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
124 else
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
125
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
126 # Waiting for this to be detected by the "$instcmd $src $dsttmp" command
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
127 # might cause directories to be created, which would be especially bad
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
128 # if $src (and thus $dsttmp) contains '*'.
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
129
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
130 if [ -f $src -o -d $src ]
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
131 then
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
132 true
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
133 else
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
134 echo "install: $src does not exist"
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
135 exit 1
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
136 fi
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
137
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
138 if [ x"$dst" = x ]
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
139 then
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
140 echo "install: no destination specified"
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
141 exit 1
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
142 else
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
143 true
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
144 fi
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
145
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
146 # If destination is a directory, append the input filename; if your system
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
147 # does not like double slashes in filenames, you may need to add some logic
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
148
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
149 if [ -d $dst ]
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
150 then
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
151 dst="$dst"/`basename $src`
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
152 else
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
153 true
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
154 fi
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
155 fi
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
156
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
157 ## this sed command emulates the dirname command
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
158 dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
159
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
160 # Make sure that the destination directory exists.
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
161 # this part is taken from Noah Friedman's mkinstalldirs script
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
162
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
163 # Skip lots of stat calls in the usual case.
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
164 if [ ! -d "$dstdir" ]; then
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
165 defaultIFS='
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
166 '
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
167 IFS="${IFS-${defaultIFS}}"
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
168
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
169 oIFS="${IFS}"
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
170 # Some sh's can't handle IFS=/ for some reason.
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
171 IFS='%'
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
172 set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'`
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
173 IFS="${oIFS}"
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
174
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
175 pathcomp=''
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
176
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
177 while [ $# -ne 0 ] ; do
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
178 pathcomp="${pathcomp}${1}"
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
179 shift
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
180
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
181 if [ ! -d "${pathcomp}" ] ;
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
182 then
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
183 $mkdirprog "${pathcomp}"
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
184 else
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
185 true
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
186 fi
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
187
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
188 pathcomp="${pathcomp}/"
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
189 done
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
190 fi
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
191
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
192 if [ x"$dir_arg" != x ]
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
193 then
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
194 $doit $instcmd $dst &&
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
195
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
196 if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi &&
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
197 if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi &&
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
198 if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi &&
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
199 if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
200 else
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
201
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
202 # If we're going to rename the final executable, determine the name now.
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
203
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
204 if [ x"$transformarg" = x ]
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
205 then
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
206 dstfile=`basename $dst`
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
207 else
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
208 dstfile=`basename $dst $transformbasename |
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
209 sed $transformarg`$transformbasename
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
210 fi
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
211
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
212 # don't allow the sed command to completely eliminate the filename
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
213
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
214 if [ x"$dstfile" = x ]
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
215 then
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
216 dstfile=`basename $dst`
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
217 else
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
218 true
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
219 fi
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
220
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
221 # Make a temp file name in the proper directory.
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
222
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
223 dsttmp=$dstdir/#inst.$$#
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
224
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
225 # Move or copy the file name to the temp name
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
226
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
227 $doit $instcmd $src $dsttmp &&
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
228
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
229 trap "rm -f ${dsttmp}" 0 &&
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
230
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
231 # and set any options; do chmod last to preserve setuid bits
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
232
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
233 # If any of these fail, we abort the whole thing. If we want to
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
234 # ignore errors from any of these, just make sure not to ignore
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
235 # errors from the above "$doit $instcmd $src $dsttmp" command.
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
236
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
237 if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi &&
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
238 if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi &&
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
239 if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi &&
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
240 if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi &&
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
241
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
242 # Now rename the file to the real destination.
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
243
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
244 $doit $rmcmd -f $dstdir/$dstfile &&
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
245 $doit $mvcmd $dsttmp $dstdir/$dstfile
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
246
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
247 fi &&
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
248
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
249
a5ace2e037bc Tailorization
Tailor Script <tailor@pidgin.im>
parents:
diff changeset
250 exit 0