|
@@ -1,7 +1,7 @@
|
1
|
1
|
#!/bin/sh
|
2
|
2
|
# SlackCheck
|
3
|
3
|
#
|
4
|
|
-# $Id: slcheck.sh,v 1.33 2006/07/06 23:42:06 gf Exp $
|
|
4
|
+# $Id: slcheck.sh,v 1.34 2006/07/07 11:06:05 gf Exp $
|
5
|
5
|
#
|
6
|
6
|
# Copyright (c) 2002-2006 Georgi Chorbadzhiyski, Sofia, Bulgaria
|
7
|
7
|
# All rights reserved.
|
|
@@ -129,13 +129,21 @@ generate_upgrade_scripts() {
|
129
|
129
|
echo "===> Generating upgrade scripts..."
|
130
|
130
|
for HOST in $SLACK_HOSTS
|
131
|
131
|
do
|
|
132
|
+ UPDATED=0
|
|
133
|
+ SKIPPED=0
|
|
134
|
+ CURRENT=0
|
|
135
|
+ UNKNOWN=0
|
|
136
|
+ TOTAL=0
|
|
137
|
+ CHECKED=0
|
|
138
|
+ FILL=$((12 - $(echo $HOST | wc -c)))
|
|
139
|
+ FL="$(yes "_" | head -$FILL | xargs echo | sed -e 's|_| |g')"
|
132
|
140
|
# Check if package list exist
|
133
|
141
|
if [ -f ${DIR_PKG}/${HOST} ]
|
134
|
142
|
then
|
135
|
143
|
if [ "$VERBOSE" != "1" ]; then
|
136
|
|
- echo -n " > $HOST "
|
|
144
|
+ echo -n " => $HOST "
|
137
|
145
|
else
|
138
|
|
- echo " > $HOST "
|
|
146
|
+ echo " => $HOST "
|
139
|
147
|
fi
|
140
|
148
|
# Cleanup old files
|
141
|
149
|
rm ${DIR_UPD}/${FILE_UNKPACKS}${HOST} >/dev/null 2>&1
|
|
@@ -143,9 +151,12 @@ generate_upgrade_scripts() {
|
143
|
151
|
rm ${DIR_UPD}/${FILE_UPDATES}${HOST}.* >/dev/null 2>&1
|
144
|
152
|
# Generate file with package basenames
|
145
|
153
|
rev < ${DIR_PKG}/$HOST | cut -d- -f4- | rev > ${DIR_UPD}/${FILE_UPDATES}${HOST}.base
|
146
|
|
- paste ${DIR_PKG}/$HOST ${DIR_UPD}/${FILE_UPDATES}${HOST}.base | \
|
|
154
|
+ paste ${DIR_PKG}/$HOST ${DIR_UPD}/${FILE_UPDATES}${HOST}.base > ${DIR_UPD}/${FILE_UPDATES}${HOST}.paste
|
|
155
|
+ TOTAL=$(wc -l < ${DIR_UPD}/${FILE_UPDATES}${HOST}.paste)
|
147
|
156
|
while read hostpkg basepkg
|
148
|
157
|
do
|
|
158
|
+ CHECKED=$(($CHECKED + 1))
|
|
159
|
+
|
149
|
160
|
# aaa_elflibs should not be updated
|
150
|
161
|
if [ "$basepkg" = "aaa_elflibs" ]; then
|
151
|
162
|
continue
|
|
@@ -158,30 +169,30 @@ generate_upgrade_scripts() {
|
158
|
169
|
distropkg="${distro_package##*/}" # Faster basename using build-in BASH tricks
|
159
|
170
|
if [ "$distropkg" != "$hostpkg" ]
|
160
|
171
|
then
|
161
|
|
- if [ "$VERBOSE" != "1" ]; then
|
162
|
|
- echo -n .
|
163
|
|
- fi
|
|
172
|
+ UPDATED=$(($UPDATED + 1))
|
164
|
173
|
echo "\
|
165
|
174
|
UPDATE=\"\$UPDATE ${distro_package}.tgz\" # EXISTING: ${hostpkg} \
|
166
|
175
|
" >> ${DIR_UPD}/${FILE_UPDATES}${HOST}.newpkgs
|
167
|
176
|
if [ "$VERBOSE" == "1" ]; then
|
168
|
|
- echo " NEW: $hostpkg -> $distropkg ($distro_package)"
|
|
177
|
+ echo " UPD: $hostpkg -> $distropkg ($distro_package)"
|
169
|
178
|
fi
|
170
|
179
|
else
|
|
180
|
+ CURRENT=$(($CURRENT + 1))
|
171
|
181
|
if [ "$VERBOSE" == "1" ]; then
|
172
|
|
- echo " SAME: $hostpkg -> $distropkg ($distro_package)"
|
|
182
|
+ echo " CURR: $hostpkg -> $distropkg ($distro_package)"
|
173
|
183
|
fi
|
174
|
184
|
fi
|
175
|
185
|
else # Add to unknown packages
|
|
186
|
+ UNKNOWN=$(($UNKNOWN+1))
|
176
|
187
|
if [ "$VERBOSE" == "1" ]; then
|
177
|
188
|
echo " UNKN: $hostpkg"
|
178
|
189
|
fi
|
179
|
190
|
echo "$hostpkg" >> ${DIR_UPD}/${FILE_UNKPACKS}${HOST}
|
180
|
191
|
fi
|
181
|
|
- done
|
182
|
|
- if [ "$VERBOSE" != "1" ]; then
|
183
|
|
- echo
|
184
|
|
- fi
|
|
192
|
+ if [ "$VERBOSE" != "1" ]; then
|
|
193
|
+ echo -n
" => ${HOST}${FL} Check $CHECKED of $TOTAL"
|
|
194
|
+ fi
|
|
195
|
+ done < ${DIR_UPD}/${FILE_UPDATES}${HOST}.paste
|
185
|
196
|
# Skip ignored packages
|
186
|
197
|
if [ -s ${DIR_UPD}/${FILE_UPDATES}${HOST}.newpkgs -a \
|
187
|
198
|
-f "do_not_update" -a \
|
|
@@ -191,6 +202,13 @@ UPDATE=\"\$UPDATE ${distro_package}.tgz\" # EXISTING: ${hostpkg} \
|
191
|
202
|
if [ "$ignore_packs" != "" ]
|
192
|
203
|
then
|
193
|
204
|
grep -v -E "${ignore_packs}" ${DIR_UPD}/${FILE_UPDATES}${HOST}.newpkgs > ${DIR_UPD}/.${HOST}.newpkgs.tmp
|
|
205
|
+ if [ -f ${DIR_UPD}/.${HOST}.newpkgs.tmp ]
|
|
206
|
+ then
|
|
207
|
+ skip1=$(wc -l < ${DIR_UPD}/${FILE_UPDATES}${HOST}.newpkgs)
|
|
208
|
+ skip2=$(wc -l < ${DIR_UPD}/.${HOST}.newpkgs.tmp)
|
|
209
|
+ SKIPPED=$(($skip1 - $skip2))
|
|
210
|
+ UPDATED=$(($UPDATED - $SKIPPED))
|
|
211
|
+ fi
|
194
|
212
|
mv ${DIR_UPD}/.${HOST}.newpkgs.tmp ${DIR_UPD}/${FILE_UPDATES}${HOST}.newpkgs
|
195
|
213
|
if [ ! -s ${DIR_UPD}/${FILE_UPDATES}${HOST}.newpkgs ]
|
196
|
214
|
then
|
|
@@ -198,6 +216,15 @@ UPDATE=\"\$UPDATE ${distro_package}.tgz\" # EXISTING: ${hostpkg} \
|
198
|
216
|
fi
|
199
|
217
|
fi
|
200
|
218
|
fi
|
|
219
|
+ status="${UPDATED} for update "
|
|
220
|
+ if [ "$UPDATED" = "0" ]; then
|
|
221
|
+ status="Up to date "
|
|
222
|
+ fi
|
|
223
|
+ if [ "$CURRENT" = "0" ]; then
|
|
224
|
+ status="No host info "
|
|
225
|
+ fi
|
|
226
|
+ echo -n
" => ${HOST}${FL} ${status} /cr ${CURRENT} un ${UNKNOWN} sk ${SKIPPED} up ${UPDATED}/"
|
|
227
|
+ echo
|
201
|
228
|
# Add intereter
|
202
|
229
|
if [ -s ${DIR_UPD}/${FILE_UPDATES}${HOST}.newpkgs ]
|
203
|
230
|
then
|