#!/bin/sh
+# $Id$
exec 2>/dev/null
-umount /jffs
-mount | grep jffs2 && {
- echo "firstboot has already been run"
- echo "to run firstboot again you must boot failsafe"
- exit
+[ -f "/tmp/.firstboot" ] && {
+ echo "firstboot is already running"
+ return
}
+touch /tmp/.firstboot
+
+jdev=$(mount | awk '/jffs2/ {print $3}')
+
+if [ -z "$jdev" ]; then
+ mtd erase OpenWrt
+ mount -t jffs2 /dev/mtdblock/4 /jffs
+ cd /jffs
+else
+ echo "firstboot has already been run"
+ echo "fixing symlinks instead"
+ cd $jdev
+fi
-mtd erase OpenWrt
-mount -t jffs2 /dev/mtdblock/4 /jffs
mount /dev/mtdblock/2 /rom -o ro
-cd /jffs
+
{
cd /rom
find . -type d
+ cd -
} | xargs mkdir
for file in $(cd /rom; find * -type f; find * -type l;)