blob: a495e3434523b7a4b1b2f1bc3f4c9298197fc745 [file] [log] [blame]
b.liue9582032025-04-17 19:18:16 +08001#!/bin/sh
2# Copyright (C) 2014 OpenWrt.org
3
4
5do_snapshot_unpack() {
6 echo "- snapshot -"
7 mkdir /tmp/snapshot
8 cd /tmp/snapshot
9 snapshot_tool read
10 block=`ls block*.tar.gz 2> /dev/null`
11 [ -z "$block" ] || for a in $block; do
12 tar xzf $a -C /
13 rm -f $a
14 done
15}
16
17do_config_unpack() {
18 echo "- config -"
19 snapshot_tool config_read
20 [ -f /tmp/config.tar.gz ] && {
21 tar xzf /tmp/config.tar.gz -C /
22 rm -f /tmp/config.tar.gz
23 }
24}
25
26do_snapshot_push() {
27 cd /volatile/upper
28 tar czf /tmp/snapshot.tar.gz *
29 snapshot_tool write
30 reboot
31}
32
33do_config_push() {
34 cd /volatile/upper
35 tar czf /tmp/config.tar.gz *
36 snapshot_tool config_write
37}
38
39do_snapshot_upgrade() {
40 opkg update
41 [ $? -eq 0 ] || exit 1
42
43 opkg list-upgradable
44 [ $? -eq 0 ] || exit 2
45
46 UPDATES=`opkg list-upgradable | cut -d" " -f1`
47 [ -z "${UPDATES}" ] && exit 0
48
49 opkg upgrade ${UPDATES}
50 [ $? -eq 0 ] || exit 3
51
52 do_snapshot_push
53 sleep 5
54 reboot
55 sleep 10
56}
57
58do_convert_jffs2() {
59 snapshot_tool write
60 sleep 2
61 reboot -f
62}
63
64do_convert() {
65 . /lib/functions.sh
66 . /lib/upgrade/common.sh
67
68 cd /overlay/upper
69 tar czf /tmp/snapshot.tar.gz *
70
71 install_bin /sbin/upgraded
72 ubus call system sysupgrade "{
73 \"prefix\": \"$RAM_ROOT\",
74 \"path\": \"\",
75 \"command\": \". /sbin/snapshot; do_convert_jffs2\"
76 }"
77}
78
79[ -n "$(cat /proc/mounts|grep /overlay|grep jffs2)" ] && {
80case $1 in
81convert)
82 do_convert
83 ;;
84esac
85}
86
87[ -d /volatile/upper ] && {
88case $1 in
89push)
90 do_snapshot_push
91 ;;
92config)
93 do_config_push
94 ;;
95upgrade)
96 do_snapshot_upgrade
97 ;;
98info)
99 snapshot_tool info
100 ;;
101esac
102}
103
104[ "$SNAPSHOT" = "magic" ] && {
105case $1 in
106unpack)
107 do_snapshot_unpack
108 ;;
109config_unpack)
110 do_config_unpack
111 ;;
112esac
113}