#!/bin/sh

set -x

fsdir=rootfs-f10
# prepare root fs
mkdir -p $fsdir/dev
mknod $fsdir/dev/console c 5 1
mknod $fsdir/dev/null c 1 3
mknod $fsdir/dev/zero c 1 5
mkdir -p $fsdir/var/lib/yum
mkdir -p $fsdir/var/log


# install packages
yum --disablerepo=* --enablerepo=f10 --installroot=`pwd`/$fsdir -y install fedora-release gcc initscripts redhat-rpm-config yum openssh-server dhclient rpm vim-minimal 2>&1 | tee $fsdir.log


# post-processing steps
cat > $fsdir/etc/fstab << EOF
/dev/root               /                       nfs     defaults        1 1
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
sysfs                   /sys                    sysfs   defaults        0 0
EOF

cat > $fsdir/etc/hosts << EOF
127.0.0.1	localhost localhost.localdomain
EOF

# Set root password to "nosoup4u"
perl -pi -e "s/^root:\*:/root:AiEQUTZNZqvBQ:/" $fsdir/etc/passwd
# Add a guest account
echo guest::500:500:Guest User:/:/bin/bash >> $fsdir/etc/passwd

cat > $fsdir/etc/resolv.conf << EOF
nameserver 4.2.2.2
EOF

cat > $fsdir/etc/sysconfig/network << EOF
NETWORKING=yes
HOSTNAME=fedora-arm
EOF

# First time convert passwd to shadow
cat >> $fsdir/etc/rc.sysinit << EOF
if [ ! -f /etc/shadow ]; then
pwconv
fi
EOF

# Add /etc/event.d/ttyS0 
cat  > $fsdir/etc/event.d/ttyS0 << EOF
start on stopped rc2
start on stopped rc3
start on stopped rc4

stop on runlevel 0
stop on runlevel 1
stop on runlevel 6

respawn
exec /sbin/agetty /dev/ttyS0 115200 vt100-nav
EOF

# Add ttyS0 to securetty
echo ttyS0 >> $fsdir/etc/securetty

# shared writable mmap does not work on jffs2. Hence we need this
cat > $fsdir/etc/rpm/macros.rpmdb << EOF
%__dbi_cdb create private nommap
EOF

# Create eth0 configuration
cat > $fsdir/etc/sysconfig/network-scripts/ifcfg-eth0 << EOF
DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes
NAME=eth0
EOF

# Switch-on network by default
chroot $fsdir chkconfig network on
