#!/bin/sh -e

initconffile=/etc/sysconfig/init
dir_list=/var
remount_script=/etc/init.d/nfsroot_remount_rw
resolver_script=/etc/init.d/nfsroot_hostname
redirect_dir=/redir
isolinux_dir=/isolinux

#fill and create pxe data
if [ -f /usr/lib/syslinux/pxelinux.0 ];then
    kver="$(readlink -ev /boot/vmlinuz)"
    kver="${kver#/boot/vmlinuz-}"

    mkdir -p "$isolinux_dir/alt0"
    cp /boot/vmlinuz "$isolinux_dir/alt0/"
    /sbin/mkinitrd -vf "$isolinux_dir/alt0/initrd.img" "$kver" --with="$(grep '^[^#]' /Metadata/modules)"
    chmod 644 "$isolinux_dir/alt0/initrd.img"

    mkdir -p "$isolinux_dir/pxelinux.cfg"
    cp /usr/lib/syslinux/pxelinux.0 "$isolinux_dir"
    [ -f /Metadata/pxelinux.cfg ] && mv -f /Metadata/pxelinux.cfg "$isolinux_dir/pxelinux.cfg/default"
fi

#replace mtab with /proc/mounts
ln -sf /proc/mounts /etc/mtab
ln -sf /proc/sys/kernel/hostname /etc/HOSTNAME

#turn on nfs services
chkconfig portmap on ||:
chkconfig nfslock on ||:

#turn off network stop
printf 'rm -f /var/lock/subsys/%s\n' "network" >>/etc/rc.d/rc

#register redirection helper directory
mkdir -p "$redirect_dir"
printf 'tmpfs\t%s\ttmpfs\tnosuid,noexec,nodev,size=1m,mode=755\t0\t0\n' "$redirect_dir" >>/etc/fstab
mv /var /var-template
ln -sf "$redirect_dir/var" /var
ln -sf /var-template $redirect_dir/var

#setup directory splitting between nodes
printf 'REMOUNT_ROOTFS_RW_COMMAND=%s\n' "$remount_script" >> "$initconffile"
printf 'RESOLVE_HOSTNAME_COMMAND=%s\n' "$resolver_script" >> "$initconffile"
