Browse Source

Add update status

Georgi Chorbadzhiyski 18 years ago
parent
commit
1fd5ebff8a
1 changed files with 40 additions and 13 deletions
  1. 40
    13
      slcheck.sh

+ 40
- 13
slcheck.sh View File

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

Loading…
Cancel
Save