#!/bin/sh # # Usage: modsave [flash|all] save() { TMPFILE=/tmp/.save.tmp if [ -r /mod/etc/conf/mod.cfg ]; then . /mod/etc/conf/mod.cfg else MOD_LIMIT=61440 fi # not really a lock if [ -e "$TMPFILE" ]; then echo "$TMPFILE exists! Concurrent update?" 1>&2 exit 1 fi tar -cf $TMPFILE flash -C /tmp/ let size="$(wc -c < $TMPFILE)" if [ "$size" -gt "$MOD_LIMIT" ]; then rm -f $TMPFILE echo "size: $size limit: $MOD_LIMIT" 1>&2 echo "ERROR: /var/flash/freetz too big" 1>&2 exit 1 fi echo -n 'Writing /var/flash/freetz...' cat $TMPFILE > /var/flash/freetz rm -f $TMPFILE echo 'done.' echo "$size bytes written." } case "$1" in ""|all) echo -n 'Saving users, groups and passwords...' /usr/bin/modusers save echo 'done.' echo -n 'Saving config...' /usr/bin/modconf save mod if [ -e /etc/static.pkg ]; then for pkg in "$(cat /etc/static.pkg)"; do if [ -r "/etc/default.$pkg/$pkg.cfg" ]; then /usr/bin/modconf save "$pkg" fi done fi echo 'done.' save ;; flash) save ;; *) echo "Usage: $0 [flash|all]" 1>&2 exit 1 ;; esac exit 0