Browse Source

Remove grep on every package in update file generation

Georgi Chorbadzhiyski 18 years ago
parent
commit
4a57e278e7
1 changed files with 21 additions and 10 deletions
  1. 21
    10
      slcheck.sh

+ 21
- 10
slcheck.sh View File

@@ -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

Loading…
Cancel
Save