summaryrefslogtreecommitdiffstats
path: root/package/base-files/default/sbin/restore
diff options
context:
space:
mode:
authornbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2005-07-17 22:52:59 +0000
committernbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2005-07-17 22:52:59 +0000
commit7619fe0848dc5f31d5c4c4cadd2ec067bd5c55d1 (patch)
tree2b6844c3bb5831e464ea4625441fd91543579b32 /package/base-files/default/sbin/restore
parent1ab4141e381fc5672c3b9c6e54ec46d6b360be7e (diff)
move target/default/target_skeleton into package/base-files, put all the default files in ipkg packages, cleanup some junk in toolchain/, toolchain/ no longer changes build_mipsel/root
git-svn-id: svn://svn.openwrt.org/openwrt/trunk/openwrt@1494 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package/base-files/default/sbin/restore')
-rwxr-xr-xpackage/base-files/default/sbin/restore71
1 files changed, 71 insertions, 0 deletions
diff --git a/package/base-files/default/sbin/restore b/package/base-files/default/sbin/restore
new file mode 100755
index 000000000..6b5876cc1
--- /dev/null
+++ b/package/base-files/default/sbin/restore
@@ -0,0 +1,71 @@
+#!/bin/sh
+for param in $*; do
+ case "$param" in
+ *)
+ INPUT_FILE="$param"
+ esac
+done
+
+if [ "$INPUT_FILE" = "-" ]; then
+ echo "Reading backup from stdin..." >&2
+elif [ "$INPUT_FILE" = "" ]; then
+ echo "No input file."
+else
+ echo "Reading backup from $INPUT_FILE" >&2
+ exec < "$INPUT_FILE"
+fi
+
+process_line () {
+ case "$SECTION" in
+ ipkg)
+ echo "$line" >> /etc/ipkg.conf
+ ;;
+ nvram)
+ echo nvram set "$line"
+ ;;
+ package)
+ if grep "^Package: $line" /usr/lib/ipkg/status 2>&1 > /dev/null; then
+ echo Package "$line" already installed.
+ else
+ ipkg install "$line"
+ fi
+ ;;
+ file)
+ rm -f "$line"
+ ;;
+ esac
+}
+
+while true; do
+ read line
+ case "$line" in
+ __IPKG__)
+ SECTION=ipkg
+ echo "Restoring /etc/ipkg.conf"
+ rm -f /etc/ipkg.conf
+ ;;
+ __NVRAM__)
+ SECTION=nvram
+ echo "Restoring nvram"
+ ;;
+ __PACKAGES__)
+ SECTION=package
+ echo "Restoring packages"
+ ipkg update
+ ;;
+ __FILELIST__)
+ SECTION=file
+ echo "Deleting old files"
+ ;;
+ __FILES__)
+ echo "Restoring /etc"
+ tar -C / -xvz
+ echo "Restore complete."
+ exit 0
+ ;;
+ *)
+ process_line;
+ ;;
+ esac
+done
+