#!/bin/sh

set -e

# Put here the path to stage3 file
SOURCE="RPMS"

# What config to load
PKGLIST="conf1"

# Size in megabytes that you want to be FREE on filesystem.
# Please, re-read above!
SIZE=50

# Name of the file that you want fs to be put into
OUTFILE=../FedoraCore3.img

# type of the filesystem
FSTYPE=reiserfs
FSCOMMAND="mkreiserfs -s513 -f -f"

echo "Build filesystem in ${OUTFILE} from ${SOURCE}..."
mkdir -p TMP

echo "Installing rpms..."
rpm --root ${PWD}/TMP --init-db
#rpm --nopre --nopost --nodeps --root ${PWD}/TMP -ivh ${SOURCE}/rpm*.rpm
chroot TMP ldconfig
while read pkg; do
	# Find package
	FOUND="`find ${SOURCE} -name \"${pkg}-[0-9]*.rpm\"`"
	if [ "${FOUND}" = "" ]; then
		echo "Package ${pkg} not found! Skip it!"
	else
		echo "Install ${FOUND}..."
		rpm --root ${PWD}/TMP -ivh ${FOUND}
	fi
done < ${PKGLIST}


echo "Rename lib/tls..."
mv TMP/lib/tls TMP/lib/tls.disabled

chroot TMP ldconfig

exit

echo "Add custom files..."
for f in `ls ADD/*.tgz`; do
	echo "Install ${f}..."
	tar -xvz -C TMP -f "${f}" 1>>/dev/null
done
rm -rf TMP/install
cp -a ADD/local.start TMP/etc/conf.d
cp -a ADD/fstab TMP/etc
cp -a ADD/syslog.conf TMP/etc
cp -a ../.common/MODULES/ TMP/lib/modules/
cp -a ../.common/MODULES/System.map TMP/boot/
echo "sc1:12345:respawn:/sbin/agetty -L ttyS0 9600 vt100" >> TMP/etc/inittab
echo "ttyS0" >> TMP/etc/securetty

echo "Add user catab..."
chroot TMP /usr/sbin/useradd -g users -d /home/catab \
	-m -p '$1$N1v0COkT$6DrqjT8LLnKMajUL3gv230' -s /bin/sh catab

i=0
for dev in a b c d; do
	echo "Make ubd${dev} (mknod /dev/ubd${dev} b 98 ${i})..."
	mknod TMP/dev/ubd${dev} b 98 ${i}
	i=$[${i}+16]
done

echo "Set root pass..."
chroot TMP passwd

echo "Put everything in ${OUTFILE}..."
DU=`du -ms TMP | cut -f1`
echo "DU=${DU}"
TOTAL=$[${SIZE}+${DU}]
echo "TOTAL=${TOTAL}"

echo "Make fsfile..."
rm -f "${OUTFILE}"
dd if=/dev/zero of="${OUTFILE}" bs=1M seek=${TOTAL} count=0

echo "Make fs..."
${FSCOMMAND} "${OUTFILE}"

echo "Mount file..."
mkdir -p TMP.loop
mount "${OUTFILE}" TMP.loop -t${FSTYPE} -oloop

echo "Copy files..."
cp -a TMP/* TMP.loop

echo "Umount file..."
umount TMP.loop
rmdir TMP.loop

rm -rf TMP
