annotate mcabber/install-sh @ 1610:6db9f403f707

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