diff options
author | nbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2005-07-17 22:52:59 +0000 |
---|---|---|
committer | nbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2005-07-17 22:52:59 +0000 |
commit | 7619fe0848dc5f31d5c4c4cadd2ec067bd5c55d1 (patch) | |
tree | 2b6844c3bb5831e464ea4625441fd91543579b32 /package/base-files/default/sbin/restore | |
parent | 1ab4141e381fc5672c3b9c6e54ec46d6b360be7e (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-x | package/base-files/default/sbin/restore | 71 |
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 + |