Parcourir la source

Add option in sysupgrade to flash gzipped images

SVN-Revision: 15672
Jo-Philipp Wich il y a 16 ans
Parent
commit
71e0f59b80

+ 6 - 3
package/base-files/files/lib/upgrade/common.sh

@@ -45,7 +45,7 @@ pivot() { # <new_root> <old_root>
 }
 
 run_ramfs() { # <command> [...]
-	install_bin /bin/busybox /bin/ash /bin/sh /bin/mount /bin/umount /sbin/pivot_root /usr/bin/wget /sbin/reboot /bin/sync /bin/dd /bin/grep /bin/cp /bin/mv /bin/tar /usr/bin/md5sum "/usr/bin/[" /bin/vi /bin/ls /bin/cat /usr/bin/awk /usr/bin/hexdump /bin/sleep
+	install_bin /bin/busybox /bin/ash /bin/sh /bin/mount /bin/umount /sbin/pivot_root /usr/bin/wget /sbin/reboot /bin/sync /bin/dd /bin/grep /bin/cp /bin/mv /bin/tar /usr/bin/md5sum "/usr/bin/[" /bin/vi /bin/ls /bin/cat /usr/bin/awk /usr/bin/hexdump /bin/sleep /bin/zcat
 	install_bin /sbin/mtd
 	for file in $RAMFS_COPY_BIN; do
 		install_bin $file
@@ -105,10 +105,13 @@ rootfs_type() {
 
 get_image() {
 	local from="$1"
+	local conc="cat"
+
+	[ $GZIPED -eq 1 ] && conc="zcat"
 
 	case "$from" in
-		http://*|ftp://*) wget -O- -q "$from";;
-		*) cat "$from"
+		http://*|ftp://*) wget -O- -q "$from" | "$conc";;
+		*) cat "$from" | "$conc";;
 	esac
 }
 

+ 3 - 1
package/base-files/files/sbin/sysupgrade

@@ -9,7 +9,7 @@ export VERBOSE=1
 export SAVE_CONFIG=1
 export DELAY=
 export CONF_IMAGE=
-
+export GZIPED=
 # parse options
 while [ -n "$1" ]; do 
 	case "$1" in
@@ -19,6 +19,7 @@ while [ -n "$1" ]; do
 		-q) export VERBOSE="$(($VERBOSE - 1))";;
 		-n) export SAVE_CONFIG=0;;
 		-f) export CONF_IMAGE="$2"; shift;;
+		-g) export GZIPED=1;;
 		-*)
 			echo "Invalid option: $1"
 			exit 1
@@ -41,6 +42,7 @@ Usage: $0 [options] <image file or URL>
 Options:
 	-d <delay>   add a delay before rebooting
 	-f <config>  restore configuration from .tar.gz (file or url)
+	-g           gziped image
 	-i           interactive mode
 	-n	     do not save configuration over reflash
 	-q           less verbose