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 }'
|
mount | awk '($3 ~ /^\/$/) && ($5 !~ /rootfs/) { print $5 }'
|
||||||
}
|
}
|
||||||
|
|
||||||
get_image() {
|
get_image() { # <source> [ <command> ]
|
||||||
local from="$1"
|
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
|
eval "$cmd $from $conc"
|
||||||
http://*|ftp://*) wget -O- -q "$from" | "$conc";;
|
|
||||||
*) cat "$from" | "$conc";;
|
|
||||||
esac
|
|
||||||
}
|
}
|
||||||
|
|
||||||
get_magic_word() {
|
get_magic_word() {
|
||||||
|
|
|
@ -9,7 +9,6 @@ export VERBOSE=1
|
||||||
export SAVE_CONFIG=1
|
export SAVE_CONFIG=1
|
||||||
export DELAY=
|
export DELAY=
|
||||||
export CONF_IMAGE=
|
export CONF_IMAGE=
|
||||||
export GZIPED=0
|
|
||||||
# parse options
|
# parse options
|
||||||
while [ -n "$1" ]; do
|
while [ -n "$1" ]; do
|
||||||
case "$1" in
|
case "$1" in
|
||||||
|
@ -19,7 +18,6 @@ while [ -n "$1" ]; do
|
||||||
-q) export VERBOSE="$(($VERBOSE - 1))";;
|
-q) export VERBOSE="$(($VERBOSE - 1))";;
|
||||||
-n) export SAVE_CONFIG=0;;
|
-n) export SAVE_CONFIG=0;;
|
||||||
-f) export CONF_IMAGE="$2"; shift;;
|
-f) export CONF_IMAGE="$2"; shift;;
|
||||||
-g) export GZIPED=1;;
|
|
||||||
-*)
|
-*)
|
||||||
echo "Invalid option: $1"
|
echo "Invalid option: $1"
|
||||||
exit 1
|
exit 1
|
||||||
|
@ -42,7 +40,6 @@ Usage: $0 [options] <image file or URL>
|
||||||
Options:
|
Options:
|
||||||
-d <delay> add a delay before rebooting
|
-d <delay> add a delay before rebooting
|
||||||
-f <config> restore configuration from .tar.gz (file or url)
|
-f <config> restore configuration from .tar.gz (file or url)
|
||||||
-g gziped image
|
|
||||||
-i interactive mode
|
-i interactive mode
|
||||||
-n do not save configuration over reflash
|
-n do not save configuration over reflash
|
||||||
-q less verbose
|
-q less verbose
|
||||||
|
@ -99,7 +96,7 @@ if [ -n "$CONF_IMAGE" ]; then
|
||||||
exit 1
|
exit 1
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
get_image "$CONF_IMAGE" > "$CONF_TAR"
|
get_image "$CONF_IMAGE" "cat" > "$CONF_TAR"
|
||||||
export SAVE_CONFIG=1
|
export SAVE_CONFIG=1
|
||||||
elif ask_bool $SAVE_CONFIG "Keep config files over reflash"; then
|
elif ask_bool $SAVE_CONFIG "Keep config files over reflash"; then
|
||||||
do_save_conffiles
|
do_save_conffiles
|
||||||
|
|
Loading…
Reference in a new issue