#! /bin/sh
#
#
PATH=$PATH:/usr/sbin:/sbin:/${ONE_LOCATION}/bin
IMAGE=$1
EXTEND_SIZE=$2
ADMINFLAG=$3

if [ "${IMAGE}x" = "x" ] || [ ! -f "${IMAGE}" ] || [ "${EXTEND_SIZE}x" = "x" ]; then
	echo "Usage: $0 <full path to image> <megabytes to expanded>"
	exit 1;
fi

echo "##### Expanding image by $EXTEND_SIZE megabytes #####"
dd if=/dev/zero bs=1M count=${EXTEND_SIZE} >> ${IMAGE}

echo "##### Unattaching any previous images           #####"
xm block-list 0 | grep -v 'Vdev' | awk '{print $1}' | xargs -n 1 xm block-detach 0 > /dev/null 2>&1

echo "##### making temporary xvd dev                  #####"
mknod /dev/fit_$$_ b 202 0
mknod /dev/fit_$$_1 b 202 1

echo "##### Attcah newly extended image               #####"
xm block-attach 0 file:${IMAGE} fit_$$_ w

echo "##### updating partition table                  #####"
fdisk /dev/fit_$$_ << EOF

x
c

r
d
n
p
1


a
1
w

EOF

echo "##### fscking image                             #####"
e2fsck -y -f /dev/fit_$$_1

echo "##### resizing filesystem                       #####"
resize2fs  /dev/fit_$$_1

echo "##### Unattaching image                         #####"
xm block-list 0 | grep -v 'Vdev' | awk '{print $1}' | xargs -n 1 xm block-detach 0 > /dev/null 2>&1

echo "##### removing temorary xvd device              #####"
rm /dev/fit_$$_
rm /dev/fit_$$_1

