summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--package/base-files/files/lib/upgrade/common.sh24
-rwxr-xr-xpackage/base-files/files/sbin/sysupgrade2
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 2c39249..06c257b 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 f25195a..fb1e91a 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) ;;
*)