#! /usr/bin/python3
import sys
import os
import platform
import logging
from watter_collector.board_rev import BoardRev

logger = logging.getLogger(__name__)

logger.debug("Checking board revision")

if platform.uname().machine != 'aarch64':
    logger.debug("Not an arm64 board")
    sys.exit(0)

target = os.environ.get('BOARD_REV')
if not target:
    logger.error("Could not get BOARD_REV from environment")
    sys.exit(1)

board = BoardRev()

if board.short_name == target:
    logger.info(f"{target} matches current board revision setting")
    sys.exit(0)

logger.warning(f"{target} does not match {board.short_name}")

match target:
    case "squid":
        os.system("vcmailbox 0x0003808c 8 8 1 1")
    case "aeger1":
        os.system("vcmailbox 0x0003808c 8 8 1 0")
    case _:
        logger.error(f"{target} is unknown, booting into unknown state!")
        sys.exit(0)

logger.warning("Rebooting to enter correct board revision")
os.system("reboot")
