#!/bin/sh

# configure 2.0.0 (Rockchip)
# Copyright (c)2017-2024 John Lawson & Sons
# All Rights Reserved

SELF=${0}
FILENAME="/configure"
if [ -f "$FILENAME" ]; then

	# GREEN LED ON
	echo default-on > /sys/class/leds/ACT/trigger
	echo 1 > /sys/class/leds/ACT/brightness

	# RED LED ON
	echo default-on > /sys/class/leds/PWR/trigger
	echo 1 > /sys/class/leds/PWR/brightness

	# GET THE / DEVICE
	ROOT_DEVICE=$(findmnt --noheadings --output=SOURCE / | cut -d'[' -f1)

	# GET THE PARTITION NUMBER
	PARTITION_NUMBER=$(udevadm info --query=property --name=${ROOT_DEVICE} | grep '^ID_PART_ENTRY_NUMBER=' | cut -d'=' -f2)

	# IF '/' DEVICE IS NOT ON PARTITIONED MEDIA
	if [ "x$PARTITION_NUMBER" = "x" ]; then

		# RESIZE THE DRIVE
		resize2fs ${ROOT_DEVICE}

		# RE-READ THE PARTITION TABLE
		partprobe ${DEVICE}

	else

		# GET THE PARTITION TYPE
		PARTITION_TYPE=$(udevadm info --query=property --name=${ROOT_DEVICE} | grep '^ID_PART_TABLE_TYPE=' | cut -d'=' -f2)

		# GET THE DEVICE
		DEVICE=$(udevadm info --query=path --name=${ROOT_DEVICE} | awk -F'/' '{print $(NF-1)}')
		DEVICE="/dev/${DEVICE}"

		# IF ITS A GUID PARTITION TABLE
		if [ "$PARTITION_TYPE" = "gpt" ]; then

			# GPT FDISK
			sgdisk -e ${DEVICE}
		fi

		# ADJUST PARTITION SIZE
		parted ${DEVICE} resizepart ${PARTITION_NUMBER} 100%

		# RE-READ THE PARTITION TABLE
		partprobe ${DEVICE}

		# RESIZE PARTITION
		resize2fs ${ROOT_DEVICE}

		# REMOVE MAXIMIZE FLAG
		rm -f ${FILENAME}

		# REMOVE THE SERVICE FOR THIS APPLICATION
		rm -f /etc/systemd/system/basic.target.wants/configure.service
		rm -f /lib/systemd/system/configure.service
		rm -f $SELF

		# REMOVE UNWANTED SERVICES
		rm -f /etc/systemd/system/network-online.target.wants/systemd-networkd-wait-online.service
		rm -f /etc/systemd/system/getty.target.wants/getty@tty1.service

		reboot
	fi
fi

# RETURN SUCCESS
exit 0
