#!/command/with-contenv bashio
# shellcheck shell=bash disable=SC1091
set -e

##################
# ALLOW RESTARTS #
##################

if [[ "${BASH_SOURCE[0]}" == /etc/cont-init.d/* ]]; then
    mkdir -p /etc/scripts-init
    sed -i "s|/etc/cont-init.d|/etc/scripts-init|g" /ha_entrypoint.sh
    sed -i "/ rm/d" /ha_entrypoint.sh
    cp "${BASH_SOURCE[0]}" /etc/scripts-init/
fi

######################
# INSTALL TENSORFLOW #
######################

# Check if the CPU supports AVX2
if [[ "$(uname -m)" = "x86_64" ]]; then
    if lscpu | grep -q "Flags"; then
        if ! lscpu | grep -q "avx2"; then
            bashio::log.warning "NON SUPPORTED CPU DETECTED"
            bashio::log.warning "Your cpu doesn't support avx2, the analyzer service will likely won't work"
            bashio::log.warning "Trying to install tensorflow instead of tflite_runtime instead. This might take some time (up to 5 minutes)."
            bashio::log.warning "You could try also Birdnet-Go which should supports your cpu"
            source /home/pi/BirdNET-Pi/birdnet/bin/activate
            mkdir -p /home/pi/.cache/pip || true &> /dev/null
            chmod 755 /home/pi/.cache/pip || true &> /dev/null
            pip3 uninstall -y tflite_runtime
            pip install --upgrade packaging==23.2
            pip3 install --upgrade --force-reinstall "https://github.com/snowzach/tensorflow-multiarch/releases/download/v2.16.1/tensorflow-2.16.1-cp311-cp311-linux_x86_64.whl"
            deactivate
        fi
    fi
fi
