#!/sbin/sh
#
# filesystem resizer + survival script

SYSTEM_DEV=/dev/block/mmcblk0p14
LOG_FILE=/tmp/filesystem-resizer.log

echo "--- start resizing filesystem $@" > $LOG_FILE
/sbin/umount $SYSTEM_DEV
echo "--- exec /sbin/e2fsck -yf $SYSTEM_DEV" >> $LOG_FILE
/sbin/e2fsck -yf $SYSTEM_DEV >> $LOG_FILE 2>&1

echo "--- exec /sbin/resize2fs $SYSTEM_DEV" >> $LOG_FILE
/sbin/resize2fs $SYSTEM_DEV >> $LOG_FILE 2>&1
/sbin/mount $SYSTEM_DEV

echo "--- installing addon.d script" >> $LOG_FILE
cat << EOF > /system/system/addon.d/00-resizesystem.sh
#!/sbin/sh
#
# /system/addon.d/00-resizesystem.sh
# For devices that have a repartitioned /system.
#
# During an upgrade, this script resizes the system partition to re-accomodate
# larger GApps on system.dat ROM zips that don't include this functionality.
#
# osm0sis @ xda-developers

. /tmp/backuptool.functions

# determine the location of the emmc system partition
if [ -e /dev/block/platform/*/by-name/system ]; then
  block=/dev/block/platform/*/by-name/system;
elif [ -e /dev/block/platform/*/*/by-name/system ]; then
  block=/dev/block/platform/*/*/by-name/system;
fi;

# force expansion of the path so we can use it
block=\`echo -n \$block\`;

case "\$1" in
  backup)
    # Stub
  ;;
  restore)
    # Stub
  ;;
  pre-backup)
    # Stub
  ;;
  post-backup)
    # Stub
  ;;
  pre-restore)
    # force check and resize /system partition
    if [ -e "\$block" ]; then
      umount /system;
      e2fsck -yf \$block;
      resize2fs \$block;
      mount /system;
    fi;
  ;;
  post-restore)
    # Stub
  ;;
esac;
EOF

chmod 755 /system/system/addon.d/00-resizesystem.sh

echo "--- done." >> $LOG_FILE
/sbin/df -h  $SYSTEM_DEV >> $LOG_FILE 2>&1
/sbin/umount $SYSTEM_DEV

exit 0
