#!/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="oscarpilot" # Fetch the latest changes from the remote repository for the target branch git fetch origin "$branch" # Check if the local branch is behind the remote branch LOCAL=$(git rev-parse "@{0}") REMOTE=$(git rev-parse "origin/$branch") if [ "$LOCAL" != "$REMOTE" ]; then echo "Local branch is behind; updating." # Checkout the target branch forcefully, ignoring submodules as in the Python example git checkout --force --no-recurse-submodules -B "$branch" "origin/$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." # Run git cleanup in the repository directory git gc git lfs prune echo "Repository cleanup has been completed." else echo "Already at the latest version; no update needed." fi fi sudo bash /data/openpilot/shell/start_service.sh # 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