mirror of
git://projects.qi-hardware.com/openwrt-xburst.git
synced 2024-12-18 21:28:25 +02:00
fc3037d051
git-svn-id: svn://svn.openwrt.org/openwrt/trunk/openwrt@534 3c298f89-4303-0410-b956-a3cf2f4a3e73
72 lines
1.1 KiB
Bash
Executable File
72 lines
1.1 KiB
Bash
Executable File
#!/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
|
|
|