#!/bin/bash
### BEGIN INIT INFO
# Provides:          expand-root
# Required-Start:
# Required-Stop:
# Should-Start:
# Should-Stop:
# Default-Start:     2 3 4 5
# Default-Stop:
# Description-Short: Expand the filesystem of the mounted root volume/partition to its maximum possible size
# Description:       Expand the filesystem of the mounted root volume/partition to its maximum possible size
#                    This file was created by bootstrap-vz.
#                    See https://github.com/andsens/bootstrap-vz/blob/master/LICENSE for
#                    legal notices and disclaimers.
### END INIT INFO

prog=$(basename $0)
logger="logger -t $prog"

growpart="growpart"

hash $growpart 2> /dev/null || {
	$logger "$growpart was not found on PATH. Unable to expand size."
	exit 1
}

root_device_path="/dev/xvda"
root_index="0"

# Growpart can fail if the partition is already resized.
$growpart $root_device_path $root_index || {
	$logger "growpart failed. Unable to expand size."
}

device_path="${root_device_path}${root_index}"
filesystem=$(blkid -s TYPE -o value ${device_path})

case $filesystem in
	xfs)  xfs_growfs / ;;
	ext2) resize2fs $device_path ;;
	ext3) resize2fs $device_path ;;
	ext4) resize2fs $device_path ;;
	*)    $logger "The filesystem $filesystem was not recognized. Unable to expand size." ;;
esac
