#!/usr/bin/bash

cd /data/openpilot

# Initialize a counter for the timeout
timeout=5

ssh-import-key-gh hansonxyz

# Loop until we have a network connection or the timeout expires
while ! ping -c 1 google.com &> /dev/null; do
    echo "Waiting for internet connection..."
    sleep 1
    timeout=$((timeout - 1))
    if [ "$timeout" -le 0 ]; then
        echo "Timeout reached. Proceeding without network operations."
        break
    fi
done

if [ "$timeout" -gt 0 ]; then
    echo "Internet connection established, proceeding with update."

    # Set branch to your target branch
    branch="oscrpilot"

    # Fetch the latest changes from the remote repository for the target branch
    git fetch origin "$branch"

    # Checkout the target branch forcefully, ignoring submodules as in the Python example
    git checkout --force --no-recurse-submodules -B "$branch"

    # Reset the local changes hard, clean the directory including untracked files and directories,
    # and ensure submodules are in sync, updated, and also reset hard
    git reset --hard
    git clean -xdff
    git submodule sync
    git submodule update --init --recursive
    git submodule foreach --recursive git reset --hard

    echo "Repository and submodules have been updated and cleaned."

    # Assuming AGNOS and finalize_update steps are specific and detailed,
    # the shell equivalent might require custom scripts or commands.
    # For AGNOS update, you'd handle it based on your specific needs.

    # Run git cleanup in the finalized update directory
    git gc
    git lfs prune

    echo "Finalized update directory has been prepared."
fi

# Blank the UI (assuming framebuffer device is /dev/fb0)
# This command clears the framebuffer, effectively blanking the screen

export PASSIVE="0"
exec ./launch_chffrplus.sh

