base-files: Detect and decompressed gzipped images automatically when flashing with sysupgrade
SVN-Revision: 16407
This commit is contained in:
parent
54d2454fcd
commit
57d7cc7666
2 changed files with 15 additions and 11 deletions
|
@ -103,16 +103,23 @@ rootfs_type() {
|
|||
mount | awk '($3 ~ /^\/$/) && ($5 !~ /rootfs/) { print $5 }'
|
||||
}
|
||||
|
||||
get_image() {
|
||||
get_image() { # <source> [ <command> ]
|
||||
local from="$1"
|
||||
local conc="cat"
|
||||
local cmd="$2"
|
||||
local conc
|
||||
|
||||
[ "$GZIPED" -eq 1 ] && conc="zcat"
|
||||
if [ -z "$cmd" ]; then
|
||||
case "$from" in
|
||||
http://*|ftp://*) cmd="wget -O- -q";;
|
||||
*) cmd="cat";;
|
||||
esac
|
||||
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";;
|
||||
esac
|
||||
fi
|
||||
|
||||
case "$from" in
|
||||
http://*|ftp://*) wget -O- -q "$from" | "$conc";;
|
||||
*) cat "$from" | "$conc";;
|
||||
esac
|
||||
eval "$cmd $from $conc"
|
||||
}
|
||||
|
||||
get_magic_word() {
|
||||
|
|
|
@ -9,7 +9,6 @@ export VERBOSE=1
|
|||
export SAVE_CONFIG=1
|
||||
export DELAY=
|
||||
export CONF_IMAGE=
|
||||
export GZIPED=0
|
||||
# parse options
|
||||
while [ -n "$1" ]; do
|
||||
case "$1" in
|
||||
|
@ -19,7 +18,6 @@ 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
|
||||
|
@ -42,7 +40,6 @@ 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
|
||||
|
@ -99,7 +96,7 @@ if [ -n "$CONF_IMAGE" ]; then
|
|||
exit 1
|
||||
;;
|
||||
esac
|
||||
get_image "$CONF_IMAGE" > "$CONF_TAR"
|
||||
get_image "$CONF_IMAGE" "cat" > "$CONF_TAR"
|
||||
export SAVE_CONFIG=1
|
||||
elif ask_bool $SAVE_CONFIG "Keep config files over reflash"; then
|
||||
do_save_conffiles
|
||||
|
|
Loading…
Reference in a new issue