diff options
author | Vasilis Tsiligiannis <acinonyx@openwrt.gr> | 2009-06-29 21:13:05 +0000 |
---|---|---|
committer | Vasilis Tsiligiannis <acinonyx@openwrt.gr> | 2009-06-29 21:13:05 +0000 |
commit | baa9053e7a6047867726db77992a453c1f32a08d (patch) | |
tree | 9438a58468df742f07af10b8a91f6ae49811d4e8 | |
parent | 115aced5c77eb36252faf4fa6a96cd956f0a0c58 (diff) | |
download | upstream-baa9053e7a6047867726db77992a453c1f32a08d.tar.gz upstream-baa9053e7a6047867726db77992a453c1f32a08d.tar.bz2 upstream-baa9053e7a6047867726db77992a453c1f32a08d.zip |
base-files: Fix sysupgrade .tar.gz configuration restoring
SVN-Revision: 16626
-rw-r--r-- | package/base-files/files/lib/upgrade/common.sh | 24 | ||||
-rwxr-xr-x | package/base-files/files/sbin/sysupgrade | 2 |
2 files changed, 13 insertions, 13 deletions
diff --git a/package/base-files/files/lib/upgrade/common.sh b/package/base-files/files/lib/upgrade/common.sh index 2c392496a0..06c257b639 100644 --- a/package/base-files/files/lib/upgrade/common.sh +++ b/package/base-files/files/lib/upgrade/common.sh @@ -105,26 +105,26 @@ rootfs_type() { get_image() { # <source> [ <command> ] local from="$1" - local cmd="$2" - local conc - - if [ -z "$cmd" ]; then - case "$from" in - http://*|ftp://*) cmd="wget -O- -q";; - *) cmd="cat";; - esac + local conc="$2" + local cmd + + case "$from" in + http://*|ftp://*) cmd="wget -O- -q";; + *) cmd="cat";; + esac + if [ -z "$conc" ]; then local magic="$(eval $cmd $from | dd bs=2 count=1 2>/dev/null | hexdump -n 2 -e '1/1 "%02x"')" case "$magic" in - 1f8b) conc="| zcat";; - 425a) conc="| bzcat";; + 1f8b) conc="zcat";; + 425a) conc="bzcat";; esac fi - eval "$cmd $from $conc" + eval "$cmd $from ${conc:+| $conc}" } get_magic_word() { - get_image "$1" | dd bs=2 count=1 2>/dev/null | hexdump -n 2 -e '1/1 "%02x"' + get_image "$@" | dd bs=2 count=1 2>/dev/null | hexdump -n 2 -e '1/1 "%02x"' } refresh_mtd_partitions() { diff --git a/package/base-files/files/sbin/sysupgrade b/package/base-files/files/sbin/sysupgrade index f25195a520..fb1e91a668 100755 --- a/package/base-files/files/sbin/sysupgrade +++ b/package/base-files/files/sbin/sysupgrade @@ -88,7 +88,7 @@ for check in $sysupgrade_image_check; do done if [ -n "$CONF_IMAGE" ]; then - case "$(get_magic_word "$CONF_IMAGE")" in + case "$(get_magic_word $CONF_IMAGE cat)" in # .gz files 1f8b) ;; *) |