#!/bin/sh # Usage: modload [force] TMPFILE=/tmp/.load.tmp.$$ MODFILE=/var/flash/freetz trap "rm -f $TMPFILE" EXIT [ -d "/tmp/flash" -a "$1" != "force" ] && exit 0 echo -n "Loading $MODFILE..." if cat $MODFILE > $TMPFILE 2> /dev/null; then if tar -xf $TMPFILE -C /tmp/ 2> /dev/null; then echo 'done.' else echo 'failed.' echo -n "Creating $MODFILE..." mkdir -p /tmp/flash tar -cf $MODFILE -C /tmp flash echo 'done.' fi else echo 'does not exist.' echo -n "Creating $MODFILE..." mkdir -p /tmp/flash tar -cf $MODFILE -C /tmp flash echo 'done.' fi [ -e /mod/etc/default.mod ] || ln -s /etc/default.mod /mod/etc/default.mod [ -e /mod/usr/lib/cgi-bin/mod ] || ln -s /usr/lib/cgi-bin/mod /mod/usr/lib/cgi-bin/mod echo -n 'Loading users, groups and passwords...' /usr/bin/modusers load echo 'done.' echo -n 'Loading hosts...' /usr/bin/modhosts load echo 'done.' echo -n 'Loading config...' /usr/bin/modconf load mod if [ -e /etc/static.pkg ]; then for pkg in $(cat /etc/static.pkg); do [ -e "/mod/pkg/$pkg" ] || ln -s / "/mod/pkg/$pkg" [ -d "/etc/default.$pkg" -a ! -e "/mod/etc/default.$pkg" ] && \ ln -s "/etc/default.$pkg" "/mod/etc/default.$pkg" [ -d "/usr/lib/cgi-bin/$pkg" -a ! -e "/mod/usr/lib/cgi-bin/$pkg" ] && \ ln -s "/usr/lib/cgi-bin/$pkg" "/mod/usr/lib/cgi-bin/$pkg" [ -x "/usr/lib/cgi-bin/$pkg.cgi" -a ! -e "/mod/usr/lib/cgi-bin/$pkg.cgi" ] && \ ln -s "/usr/lib/cgi-bin/$pkg.cgi" "/mod/usr/lib/cgi-bin/$pkg.cgi" [ -x "/etc/init.d/rc.$pkg" -a ! -e "/mod/etc/init.d/rc.$pkg" ] && \ ln -s "/etc/init.d/rc.$pkg" "/mod/etc/init.d/rc.$pkg" [ -r "/etc/default.$pkg/$pkg.cfg" ] && /usr/bin/modconf load "$pkg" done fi echo 'done.' echo -n 'Loading modules...' if [ -r "/tmp/flash/modules" ]; then grep -v "^#" /tmp/flash/modules | while read -r module; do [ -z "$module" ] || modprobe $module done fi echo 'done.' exit 0