|
@@ -1,7 +1,7 @@
|
1
|
1
|
#!/bin/sh
|
2
|
2
|
# SlackCheck
|
3
|
3
|
#
|
4
|
|
-# $Id: slcheck.sh,v 1.35 2006/07/07 11:46:24 gf Exp $
|
|
4
|
+# $Id: slcheck.sh,v 1.36 2006/07/10 08:30:58 gf Exp $
|
5
|
5
|
#
|
6
|
6
|
# Copyright (c) 2002-2006 Georgi Chorbadzhiyski, Sofia, Bulgaria
|
7
|
7
|
# All rights reserved.
|
|
@@ -24,7 +24,7 @@
|
24
|
24
|
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
25
|
25
|
#
|
26
|
26
|
|
27
|
|
-echo "SlackCheck v3.60"
|
|
27
|
+echo "SlackCheck v3.70"
|
28
|
28
|
echo
|
29
|
29
|
|
30
|
30
|
cd $(dirname $0)
|
|
@@ -97,6 +97,8 @@ sync_master_list() {
|
97
|
97
|
then
|
98
|
98
|
grep .tgz$ CHECKSUMS.md5 | cut -d" " -f3 | sed -e 's|.tgz||;s|\./||' >> ../${FILE_NEWEST}
|
99
|
99
|
fi
|
|
100
|
+ rev < ../${FILE_NEWEST} | cut -d- -f4- | rev | sed -e 's|.*/||;s|[^A-Za-z0-9_]|_|g' > ../.${FILE_NEWEST}.base
|
|
101
|
+ paste ../.${FILE_NEWEST}.base ../${FILE_NEWEST} > ../.${FILE_NEWEST}.paste
|
100
|
102
|
cd ..
|
101
|
103
|
rm -rf $TMPDIR 2>/dev/null
|
102
|
104
|
cd $WD
|
|
@@ -125,8 +127,17 @@ collect_package_lists() {
|
125
|
127
|
|
126
|
128
|
# Generate upgrade scripts
|
127
|
129
|
generate_upgrade_scripts() {
|
128
|
|
- mkdir ${DIR_UPD} 2>/dev/null
|
|
130
|
+ [ -d ${DIR_UPD} ] || mkdir ${DIR_UPD}
|
129
|
131
|
echo "===> Generating upgrade scripts..."
|
|
132
|
+ if [ ! -f ${DIR_PKG}/.${FILE_NEWEST}.paste ]
|
|
133
|
+ then
|
|
134
|
+ sync_master_list
|
|
135
|
+ fi
|
|
136
|
+ # Init \$basepkg variables
|
|
137
|
+ while read basepkg hostpkg
|
|
138
|
+ do
|
|
139
|
+ eval $basepkg=$hostpkg
|
|
140
|
+ done < ${DIR_PKG}/.${FILE_NEWEST}.paste
|
130
|
141
|
for HOST in $SLACK_HOSTS
|
131
|
142
|
do
|
132
|
143
|
UPDATED=0
|
|
@@ -150,7 +161,7 @@ generate_upgrade_scripts() {
|
150
|
161
|
rm ${DIR_UPD}/${FILE_UPDATES}${HOST} >/dev/null 2>&1
|
151
|
162
|
rm ${DIR_UPD}/${FILE_UPDATES}${HOST}.* >/dev/null 2>&1
|
152
|
163
|
# Generate file with package basenames
|
153
|
|
- rev < ${DIR_PKG}/$HOST | cut -d- -f4- | rev > ${DIR_UPD}/${FILE_UPDATES}${HOST}.base
|
|
164
|
+ rev < ${DIR_PKG}/$HOST | cut -d- -f4- | rev | sed -e 's|.*/||;s|[^A-Za-z0-9_]|_|g' > ${DIR_UPD}/${FILE_UPDATES}${HOST}.base
|
154
|
165
|
paste ${DIR_PKG}/$HOST ${DIR_UPD}/${FILE_UPDATES}${HOST}.base > ${DIR_UPD}/${FILE_UPDATES}${HOST}.paste
|
155
|
166
|
TOTAL=$(wc -l < ${DIR_UPD}/${FILE_UPDATES}${HOST}.paste)
|
156
|
167
|
while read hostpkg basepkg
|
|
@@ -163,8 +174,8 @@ generate_upgrade_scripts() {
|
163
|
174
|
fi
|
164
|
175
|
# Get package from the distro packages
|
165
|
176
|
# This contains FULL directory + package name
|
166
|
|
- distro_package=$(grep /$basepkg-[0-9] ${DIR_PKG}/${FILE_NEWEST})
|
167
|
|
- if [ "$distro_package" != "" ]
|
|
177
|
+ eval distro_package="\$$basepkg"
|
|
178
|
+ if [ "$distro_package" != "" -a "$distro_package" != "\$" ]
|
168
|
179
|
then # Host package exist in the distro packages
|
169
|
180
|
distropkg="${distro_package##*/}" # Faster basename using build-in BASH tricks
|
170
|
181
|
if [ "$distropkg" != "$hostpkg" ]
|
|
@@ -223,7 +234,7 @@ UPDATE=\"\$UPDATE ${distro_package}.tgz\" # EXISTING: ${hostpkg} \
|
223
|
234
|
if [ "$CURRENT" = "0" ]; then
|
224
|
235
|
status="No host info "
|
225
|
236
|
fi
|
226
|
|
- echo -n
" => ${HOST}${FL} ${status} /cr ${CURRENT} un ${UNKNOWN} sk ${SKIPPED} up ${UPDATED}/"
|
|
237
|
+ echo -n
" => ${HOST}${FL} ${status} /cur ${CURRENT} unk ${UNKNOWN} skip ${SKIPPED} upd ${UPDATED}/"
|
227
|
238
|
echo
|
228
|
239
|
# Add intereter
|
229
|
240
|
if [ -s ${DIR_UPD}/${FILE_UPDATES}${HOST}.newpkgs ]
|
|
@@ -293,9 +304,9 @@ upgrade_machines() {
|
293
|
304
|
# Use su if we're running not as root
|
294
|
305
|
if [ "$(id -u)" != "0" ]; then
|
295
|
306
|
echo " Enter root password"
|
296
|
|
- (su -c "/bin/sh ${DIR_UPD}/${FILE_UPDATES}${HOST}") | tee ${DIR_UPD}/log_${FILE_UPDATES}${HOST}
|
|
307
|
+ (su -c "/bin/sh ${DIR_UPD}/${FILE_UPDATES}${HOST}") 2>&1 | tee ${DIR_UPD}/log_${FILE_UPDATES}${HOST}
|
297
|
308
|
else
|
298
|
|
- (/bin/sh ${DIR_UPD}/${FILE_UPDATES}${HOST}) | tee ${DIR_UPD}/log_${FILE_UPDATES}${HOST}
|
|
309
|
+ (/bin/sh ${DIR_UPD}/${FILE_UPDATES}${HOST}) 2>&1 | tee ${DIR_UPD}/log_${FILE_UPDATES}${HOST}
|
299
|
310
|
fi
|
300
|
311
|
# Remote host
|
301
|
312
|
else
|
|
@@ -303,7 +314,7 @@ upgrade_machines() {
|
303
|
314
|
(cat ${DIR_UPD}/${FILE_UPDATES}${HOST} | \
|
304
|
315
|
${RSH_UPGRADE} ${HOST} \
|
305
|
316
|
"cat - > ${FILE_UPDATES}${HOST}_${NOW}; \
|
306
|
|
- /bin/sh ${FILE_UPDATES}${HOST}_${NOW};") | tee ${DIR_UPD}/log_${FILE_UPDATES}${HOST}
|
|
317
|
+ /bin/sh ${FILE_UPDATES}${HOST}_${NOW};") 2>&1 | tee ${DIR_UPD}/log_${FILE_UPDATES}${HOST}
|
307
|
318
|
fi
|
308
|
319
|
fi
|
309
|
320
|
done
|