#!/bin/sh

read -r disk_name

set -e

case $disk_name in
    private)
        # force some read to refresh device size
        head /dev/xvdb > /dev/null
        resize2fs /dev/xvdb
        ;;
    root)
        # force some read to refresh device size
        head /dev/xvda > /dev/null
        if [ "$(stat -Lc %t /dev/mapper/dmroot)" != "ca" ]; then
            new_size=$(cat /sys/block/xvda/size)
            ro=$(/sys/block/xvda/ro)
            if [ "$ro" -eq 1 ]; then
                new_table="0 $new_size snapshot /dev/xvda /dev/xvdc2 N 16"
            else
                new_table="0 $new_size linear /dev/xvda 0"
            fi
            dmsetup load dmroot --table "$new_table"
            dmsetup resume dmroot
        fi
        resize2fs /dev/mapper/dmroot
        ;;
    *)
        echo "Automatic resize of '$disk_name' not supported" >&2
        exit 1
        ;;
esac