install-sh

Tue, 12 Dec 2000 09:09:24 +0000

author
Eric Warmenhoven <warmenhoven@yahoo.com>
date
Tue, 12 Dec 2000 09:09:24 +0000
changeset 1235
c8d6eef4edce
parent 0
7b1da07f853f
permissions
-rwxr-xr-x

[gaim-migrate @ 1245]
1. added protocol names to menus in conversation/join chat dialog. helpful if you're signed on as warmenhoven in both irc and yahoo.

2. made "no sounds when away" mean absolutely no sounds when away.

3. fixed buddy pounces and made it so you can save them.

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

mercurial