openwrt/package/system/fstools/files/snapshot
John Crispin 20940138ac scripts: fix wrong usage of '==' operator
[base-files] shell-scripting: fix wrong usage of '==' operator

normally the '==' is used for invoking a regex parser and is a bashism.
all of the fixes just want to compare a string. the used busybox-ash
will silently "ignore" this mistake, but make it portable/clean at least.

this patch does not change the behavior/logic of the scripts.

Signed-off-by: Bastian Bittorf <bittorf@bluebottle.com>

SVN-Revision: 42911
2014-10-14 12:21:11 +00:00

112 lines
1.6 KiB
Bash

#!/bin/sh
# Copyright (C) 2014 OpenWrt.org
do_snapshot_unpack() {
echo "- snapshot -"
mkdir /tmp/snapshot
cd /tmp/snapshot
snapshot_tool read
block=`ls block*.tar.gz 2> /dev/null`
[ -z "$block" ] || for a in $block; do
tar xzf $a -C /
rm -f $a
done
}
do_config_unpack() {
echo "- config -"
snapshot_tool config_read
[ -f /tmp/config.tar.gz ] && {
tar xzf /tmp/config.tar.gz -C /
rm -f /tmp/config.tar.gz
}
}
do_snapshot_push() {
cd /volatile
tar czf /tmp/snapshot.tar.gz *
snapshot_tool write
reboot
}
do_config_push() {
cd /volatile
tar czf /tmp/config.tar.gz *
snapshot_tool config_write
}
do_snapshot_upgrade() {
opkg update
[ $? -eq 0 ] || exit 1
opkg list-upgradable
[ $? -eq 0 ] || exit 2
UPDATES=`opkg list-upgradable | cut -d" " -f1`
[ -z "${UPDATES}" ] && exit 0
opkg upgrade ${UPDATES}
[ $? -eq 0 ] || exit 3
do_snapshot_push
sleep 5
reboot
sleep 10
}
do_convert_jffs2() {
snapshot_tool write
sleep 2
reboot -f
}
do_convert() {
. /lib/functions.sh
. /lib/upgrade/common.sh
ubus call system upgrade
touch /tmp/sysupgrade
cd /overlay
tar czf /tmp/snapshot.tar.gz *
kill_remaining TERM
sleep 3
kill_remaining KILL
run_ramfs '. /sbin/snapshot; do_convert_jffs2'
}
[ -n "$(cat /proc/mounts|grep /overlay|grep jffs2)" ] && {
case $1 in
convert)
do_convert
;;
esac
}
[ -d /volatile ] && {
case $1 in
push)
do_snapshot_push
;;
config)
do_config_push
;;
upgrade)
do_snapshot_upgrade
;;
info)
snapshot_tool info
;;
esac
}
[ "$SNAPSHOT" = "magic" ] && {
case $1 in
unpack)
do_snapshot_unpack
;;
config_unpack)
do_config_unpack
;;
esac
}