#!/bin/bash

# Check if md5sum of /usr/comma/bg.jpg is not equal to md5sum of /data/openpilot/shell/bg.jpg
if [ "$(md5sum /usr/comma/bg.jpg | awk '{print $1}')" != "$(md5sum /data/openpilot/shell/bg.jpg | awk '{print $1}')" ]; then
    sudo mount -o remount,rw /

    # If /usr/comma/bg.org does not exist
    if [ ! -f /usr/comma/bg.org ]; then
        # Check if md5sum of /usr/comma/bg.jpg contains "642380ba4c0f00b16e9cf6e613f43eec"
        if [[ "$(md5sum /usr/comma/bg.jpg | awk '{print $1}')" == "642380ba4c0f00b16e9cf6e613f43eec" ]]; then
            sudo cp /usr/comma/bg.jpg /usr/comma/bg.org
        fi
    fi

    # If /usr/comma/bg.org does exist
    if [ -f /usr/comma/bg.org ]; then
        sudo cp -f /data/openpilot/shell/bg.jpg /usr/comma/bg.jpg
    fi

    # If file /usr/comma/revert_logo.sh does not exist
    if [ ! -f /usr/comma/revert_logo.sh ]; then
        sudo cp /data/openpilot/shell/revert_logo.sh /usr/comma/revert_logo.sh

        # configure comma.sh to start it at startup

        FILE_PATH="/usr/comma/comma.sh"
        SEARCH_STRING="bash /usr/comma/revert_logo.sh"
        INSERT_BEFORE="while true; do"

        # Check if the file contains the line to insert; if not, proceed.
        if ! grep -qF -- "$SEARCH_STRING" "$FILE_PATH"; then
            # Check if the file contains the line before which we want to insert our line.
            if grep -qF -- "$INSERT_BEFORE" "$FILE_PATH"; then
                # Use awk to insert the line before the specified pattern.
                sudo cp /usr/comma/comma.sh /tmp/comma.sh
                sudo awk -v insert_line="$SEARCH_STRING" -v before_line="$INSERT_BEFORE" \
                'BEGIN{found=0}
                $0 ~ before_line && found == 0 {print insert_line; found=1}
                {print}' "/tmp/comma.sh" > "/tmp/comma.sh.tmp" && sudo mv "/tmp/comma.sh.tmp" "$FILE_PATH"
            fi
        fi
    fi

    echo Applied custom logo for comma boot sequence
    sudo sync
    sleep 2
    sudo mount -o remount,ro /
    sudo sync
fi
