#!/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=30720 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="$(cat $TMPFILE | wc -c)" if [ "$size" -gt "$MOD_LIMIT" ]; then rm -f $TMPFILE echo "size: $size limit: $MOD_LIMIT" 1>&2 echo "ERROR: /var/flash/ds_mod too big" 1>&2 exit 1 fi echo -n 'Writing /var/flash/ds_mod...' cat $TMPFILE > /var/flash/ds_mod rm -f $TMPFILE echo 'done.' echo "$size bytes written." } case "$1" in ""|all) echo -n 'Saving passwords...' /usr/bin/modpasswd 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