#!/bin/sh

if [ -f Config.$1 ] ; then
. Config.$1
else
. Config
fi

if [ -f ren_files.$1 ] ; then
  cat ren_files.$1 | while read cmd old_fname new_fname
  do
    if [ -f $TARGET_DIR/$old_fname ] ; then
      if [ "$cmd" = "mv" ] ; then
        mv $TARGET_DIR/$old_fname $TARGET_DIR/$new_fname
      fi
      if [ "$cmd" = "rm" ] ; then
        rm -f $TARGET_DIR/$old_fname
      fi
    fi
  done
fi

mkdir $MNTDIR 2>/dev/null

echo 
echo "---------------------------------------------------"
echo "Creating ramdisk image..."
echo "                    --> this takes up to 2 minutes"
echo "---------------------------------------------------"

echo "Check BusyBox"
if [ "$CHK_BB" = "true" ] ; then
	if [ ! -x $RD_ROOT/sbin/busybox ] ; then
		$BYLDHOME/LinkBusyBox
	fi
fi

echo "Make a file of $RD_SIZE"
dd if=/dev/zero of=$TMPFILE bs=1k count=$RD_SIZE

echo "Make ext2 fs on file and mount it as a loop device"
/sbin/mke2fs -F -m 0 -N $RD_NINODES $TMPFILE > /dev/null
if [ "$?" != "0" ] ; then
	echo "ERROR $? MAKING EXT2 FS!"
	exit -2
fi
mount -t ext2 -o loop $TMPFILE $MNTDIR
if [ "$?" != "0" ] ; then
	echo "ERROR $? MOUNTING FILE!"
	exit -3
fi

TARGET_BASE=`basename $TARGET_DIR`

user_ori=`ls -la | grep -w $TARGET_BASE | awk '{ print $3 }'`

echo Directory target_dir owner:$user_ori
chown -R root:root $RD_ROOT
chmod +s $RD_ROOT/bin/tinylogin
chmod -R 755 $RD_ROOT/var
chmod 664 $RD_ROOT/var/run/utmp
chmod 755 $RD_ROOT/var/empty
chown root:sys $RD_ROOT/var/empty
chmod -R 666 $RD_ROOT/dev/console
echo -n "Copying ramdisk contents to file device... "
MDIR=`pwd`
cd $RD_ROOT
cp -a . $MNTDIR
cd $MDIR
echo "done."
chown -R $user_ori:cvs $RD_ROOT

echo "Ramdisk block usage"
df -k | grep Filesystem
df -k | grep "$TMPFILE"
echo
echo "Ramdisk inode usage"
df -i | grep Filesystem
df -i | grep "$TMPFILE"
echo
sleep 3
echo "Umount filesystem"
umount $MNTDIR
rmdir $MNTDIR 2>/dev/null

echo "Create gziped rd image"
dd if=$TMPFILE | gzip -9 > $RD_IMAGE
rm -f $TMPFILE
cp -p $RD_IMAGE linux/arch/ppc/mbxboot/ramdisk.image.gz
rm -f $RD_IMAGE

echo -n "Waiting until everthing is written... "
sync

echo "done."
echo
