From: jow <jow@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Date: Thu, 7 May 2009 13:27:10 +0000 (+0000)
Subject: [PATCH] Add option in sysupgrade to flash gzipped images
X-Git-Url: https://git.rohieb.name/openwrt.git/commitdiff_plain/45ff7559b1a29c1be0ac06dae2ba3ad860fa6634

[PATCH] Add option in sysupgrade to flash gzipped images


git-svn-id: svn://svn.openwrt.org/openwrt/trunk@15672 3c298f89-4303-0410-b956-a3cf2f4a3e73
---

diff --git a/package/base-files/files/lib/upgrade/common.sh b/package/base-files/files/lib/upgrade/common.sh
index d4fb04ba9..7739275be 100644
--- a/package/base-files/files/lib/upgrade/common.sh
+++ b/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
 }
 
diff --git a/package/base-files/files/sbin/sysupgrade b/package/base-files/files/sbin/sysupgrade
index 1825cec58..83cc95682 100755
--- a/package/base-files/files/sbin/sysupgrade
+++ b/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