Add option in sysupgrade to flash gzipped images
authorJo-Philipp Wich <jow@openwrt.org>
Thu, 7 May 2009 13:27:10 +0000 (13:27 +0000)
committerJo-Philipp Wich <jow@openwrt.org>
Thu, 7 May 2009 13:27:10 +0000 (13:27 +0000)
SVN-Revision: 15672

package/base-files/files/lib/upgrade/common.sh
package/base-files/files/sbin/sysupgrade

index d4fb04ba97e89e343c250cd1a85908a9f40be70a..7739275becc0fdd825c80b376a2444df2efbdfb6 100644 (file)
@@ -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
 }
 
index 1825cec58e122e9764e650ff4f6a8648a2f92592..83cc95682f19f5fc0a6e0829a05f2f473a890ada 100755 (executable)
@@ -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