#!/bin/sh
# Copyright (c) 2008-2008 Synology Inc. All rights reserved.

Usage() { #{{{ 
	echo "Copyright (c) 2008-2008 Synology Inc. All rights reserved."
	echo ""
	echo " Usage: `basename $0` vol_id {-l|-L} lv_size"
	echo ""
	if [ -z $1 ]; then
		echo "   vol_id: The id of targeted volume for expansion."
		echo "  lv_size: -l Percentage%{VG|FREE}        e.g. -l 80%VG / -l 100%FREE"
		echo "       or  -L HumanReadSize[kKmMgGtTpPeE] e.g. -L 160G / -L 1T"
	else	
		echo "ERROR: $1 is not a valid parameter. Please run again."
	fi
	exit 1
} #}}}

# Check parameters #{{{
if [ -z "$1" -o "x$1" = "x-h" ]; then
	Usage
else
	Err=`echo "$1" | sed 's/[0-9]//g'`
	if [ "x$Err" != "x" ]; then
		Usage $1
	fi
fi
if [ -z "$3" ]; then
	Usage
elif [ "x$2" = "x-l" ]; then
	percent=`echo "$3" | sed 's/^\([0-9]*\).*/\1/'`
	Err=`echo "$3" | sed 's/^[0-9]*//'`
	if [ $percent -gt 100 ]; then
		Usage $3
	elif [ "x$Err" != "x%VG" -a "x$Err" != "x%FREE" ]; then
		Usage $3
	fi
elif [ "x$2" = "x-L" ]; then
	Err=`echo "$3" | sed 's/^[0-9]*[kKmMgGtTpPeE]//'`
	if [ "x$Err" != "x" ]; then
		Usage $3
	fi
else
	Usage $2
fi #}}}

volid=$1
vol="/volume$volid"
mdid=`expr $volid + 1`
pv="/dev/md$mdid"
vg="vg$volid"
lv="/dev/$vg/lv"

grep "$lv $vol " /proc/mounts > /dev/null
if [ $? != 0 ]; then
	echo "ERROR: $vol is not a valid lvm volume. Please run again."
	exit 1
fi

echo "#pvresize $pv"
pvresize $pv
if [ $? -ne 0 ]; then
	echo "ERROR: Failed to pvresize $pv."
	exit 1
fi

echo "#lvextend $lv $2 $3"
lvextend $lv $2 $3
if [ $? -ne 0 ]; then
	echo "ERROR: Failed to lvextend $lv."
	exit 1
fi

echo "#resize2fs $lv"
/sbin/resize2fs -fpF $lv
if [ $? -ne 0 ]; then
	echo "ERROR: Failed to resize2fs $lv."
	exit 1
fi

echo "Expansion successful."

