#!/bin/sh
# PiBox device setup
# -------------------------------------------------
# Buildroot/Busybox create symlinks from /var/* to /tmp
# PiBox's build also uses a single ramdisk but provides a
# directory structure for it so that /tmp isn't just
# one big holding tank for all ramdisk data.

case "$1" in
    start)
        if [ ! -d /var/volatile ]
        then
            # Clean out initial /var contents and get rid of /tmp
            rm -rf /var/*
            rm -rf /tmp
        
            # Make a mount point for the ramdisk
            mkdir -p /var/volatile
        
            # Create symlinks that will become valid after the
            # volatile init script is run.
            ln -s /var/volatile/cache /var/cache
            ln -s /var/volatile/lock /var/lock
            ln -s /var/volatile/log /var/log
            ln -s /var/volatile/run /var/run
            ln -s /var/volatile/tmp /var/tmp
            ln -s /var/volatile/lib /var/lib
            ln -s /var/volatile/lib/dbus /var/lib/dbus
            ln -s /var/volatile/tmp /tmp
        
            # Busybox points resolv.conf to the wrong place.
            # We fix that here.
            rm -f /etc/resolv.conf
            ln -s /var/run/resolv.conf /etc/resolv.conf
        fi
        
        # Now, mount volatile
        if [ -d /var/volatile ]; then mount -t tmpfs tmpfs /var/volatile; fi
        mkdir -p /var/volatile/cache
        mkdir -p /var/volatile/lock
        mkdir -p /var/volatile/log
        mkdir -p /var/volatile/run
        mkdir -p /var/volatile/tmp
        mkdir -p /var/volatile/lib/dbus
        
        # Create necessary devices
        if [ ! -c /dev/null    ]; then mknod /dev/null c 1 3 ; fi
        if [ ! -c /dev/zero    ]; then mknod /dev/zero c 1 5 ; fi
        if [ ! -c /dev/random  ]; then mknod /dev/random c 1 8 ; fi
        if [ ! -c /dev/urandom ]; then mknod /dev/urandom c 1 9 ; fi
        if [ ! -c /dev/console ]; then mknod /dev/console c 5 1 ; fi
        if [ ! -b /dev/loop0   ]; then mknod /dev/loop0 b 7 0 ; fi
        if [ ! -c /dev/ttyO0   ]; then mknod /dev/ttyO0 c 253 0 ; fi
        if [ ! -c /dev/ttyO1   ]; then mknod /dev/ttyO1 c 253 1 ; fi
        if [ ! -c /dev/ttyO2   ]; then mknod /dev/ttyO2 c 253 2 ; fi
        
        # Make /sys and /proc if they aren't there.
        if [ ! -d /sys  ]; then mkdir /sys; fi
        if [ ! -d /proc ]; then mkdir /proc; fi
        
        # Make necessary directories under /dev
        # /etc/fstab is used to mount these.
        mkdir -p /dev/pts
        mkdir -p /dev/shm
        mkdir -p /dev/bus/usb
        
        # Make sure all devices are available
        echo /sbin/mdev > /proc/sys/kernel/hotplug
        mdev -s
        ;;
    stop) 
        ;;
    restart|reload)
        ;;
    *)
        echo $"Usage: $0 {start|stop|restart}"
        exit 1
esac

exit $?

    
