#!/bin/bash

# Initialize variables
START_FILE="$HOME/.config/autostart/vision-par-ordinateur-python.desktop"
PROJECT_DIR="$HOME/vision-par-ordinateur-python"
INPUT=""
VERBOSE=""
FORCE=""
API_URL=""

# Load PyEnv for user
export PYENV_ROOT="$HOME/.pyenv"
[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init - bash)"
eval "$(pyenv virtualenv-init -)"

# Prompt for INPUT
read -p "Voulez-vous indiquer un flux d'entrée ? (oui/non): " input_choice
if [[ "$input_choice" == "oui" || "$input_choice" == "o" ]]; then
    read -p "Entrez la valeur d'entrée : " INPUT
    INPUT="-i $INPUT"
fi

# Prompt for VERBOSE
read -p "Voulez-vous une verbosité accrue ? (oui/non): " verbose_choice
if [[ "$verbose_choice" == "oui" || "$verbose_choice" == "o" ]]; then
    VERBOSE="-v"
fi

# Prompt for FORCE
read -p "Voulez-vous forcer le redimenssionnement de l'image ? (oui/non): " force_choice
if [[ "$force_choice" == "oui" || "$force_choice" == "o" ]]; then
    FORCE="-f"
fi

# Prompt for API_URL
read -p "Voulez-vous renseigner l'URL de l'API ? (oui/non): " api_choice
if [[ "$api_choice" == "oui" || "$api_choice" == "o" ]]; then
    read -p "Entrez l'URL de l'API : " API_URL
    API_URL="--api-url $API_URL"
fi

# Construct the final command
COMMAND="python main.py $INPUT $VERBOSE $FORCE $API_URL >> $HOME/vision-par-ordinateur-python/main.log 2>&1"

# Output the command to the autostart.sh file
echo -e "$COMMAND" >> autostart.sh

# Make the script executable
chmod +x autostart.sh

# Make the project directory and copy content
mkdir "${PROJECT_DIR}"
cp -r main.py autostart.sh requirements.txt models track "${PROJECT_DIR}"

# Install venv and requirements
cd "${PROJECT_DIR}"
pyenv local 3.13.2
python -m venv venv
source venv/bin/activate
pip install --upgrade pip
pip install -r requirements.txt

# Auto start program settings
mkdir -p ~/.config/autostart
touch "${START_FILE}"
echo -e "[Desktop Entry]\nType=Application\nExec=${HOME}/vision-par-ordinateur-python/autostart.sh\nHidden=false\nNoDisplay=false\nX-GNOME-Autostart-enabled=true\nName=Vision par ordinateur\nComment=Lance le script Python pour la vision par ordinateur" >> "${START_FILE}"

echo -e "L'installation du programme et du démarrage automatique est terminé.\nVeuillez redémarrer l'ordinateur pour démarrer la vision par ordinateur automatiquement."
