#!/bin/sh

is_appliance="false"
if [ -e /etc/virtual_appliance.conf ] || [ -e /etc/esx_appliance.conf ] || [ -e /etc/hci_appliance.conf ]; then
	is_appliance="true"
fi

mount -t proc /proc /proc 
mount -t sysfs /sys /sys
if [ $is_appliance = "false" ]; then
	mount -o mode=0755 -t devtmpfs /dev /dev

	mount -t tmpfs tmpfs /tmp
	mkdir -p /tmp/root
fi

mknod /dev/null c 1 3
mknod /dev/zero c 1 5
mkdir /dev/pts
mkdir /dev/shm
# Assume rw /
mkdir -p /var/
mkdir -p /var/lib/nfs/sm
mkdir -p /var/lib/nfs/sm.bak
touch /var/lib/nfs/etab
mkdir -p /run
mount -t tmpfs tmpfs /run
if [ -d /sys/firmware/efi ];then
	mount -t efivarfs none /sys/firmware/efi/efivars
fi
mkdir -p /run/lock
ln -s /run /var/run
if [ $is_appliance = "false" ]; then
	/bin/udevd --daemon
fi

if [ -e /lib/modules.sq ]; then
	mkdir -p /lib/modules
	mount -t squashfs /lib/modules.sq /lib/modules -o loop
	if [ $is_appliance = "false" ]; then
		rm -f /lib/modules.sq
	fi
fi

if [ -e /lib/firmware.sq ]; then
	mkdir -p /lib/firmware
	mount -t squashfs /lib/firmware.sq /lib/firmware -o loop
	if [ $is_appliance = "false" ]; then
		rm -f /lib/firmware.sq
	fi
fi

if [ -e /dev/virtio-ports/org.qemu.guest_agent.0 ]; then
	qemu-ga --daemonize
fi

exec /bin/init
