#!/bin/bash

# WARNING: run this script from the project root folder, not from here!!

# This script is used to inject framework and config files inside a RetroDECK cooker installation
# To apply the injected config you have to reset the targeted component from the Configurator
# Please know what you're doing, if you need to undo this you need to completely uninstall and reinstall RetroDECK flatpak
# Please note that this may create a dirty situation where older files are still in place as the action is add and overwrite

flatpak_user_installation="$HOME/.local/share/flatpak/app/net.retrodeck.retrodeck/current/active/files"
flatpak_system_installation="/var/lib/flatpak/app/net.retrodeck.retrodeck/current/active/files"
force_user=false
force_system=false

# Parse arguments
while [[ "$#" -gt 0 ]]; do
    case $1 in
        --force-user) force_user=true ;;
        --force-system) force_system=true ;;
        *) echo "Unknown parameter: $1"; exit 1 ;;
    esac
    shift
done

# Determine installation path
if [ "$force_user" = true ]; then
    echo "Forcing user mode installation."
    app="$flatpak_user_installation"
elif [ "$force_system" = true ]; then
    echo "Forcing system mode installation."
    app="$flatpak_system_installation"
elif [ -d "$flatpak_user_installation" ]; then
    echo "RetroDECK is installed in user mode, proceeding."
    app="$flatpak_user_installation"
elif [ -d "$flatpak_system_installation" ]; then
    echo "RetroDECK is installed in system mode, proceeding."
    app="$flatpak_system_installation"
else
    echo "RetroDECK installation not found, quitting"
    exit 1
fi

# Copying files to the installation
sudo cp -vfr "res/binding_icons" "$app/retrodeck/binding_icons" 
sudo cp -vfr "config/"** "$app/retrodeck/config/"
sudo cp -vfr "tools" "$app"
sudo cp -vfr "retrodeck.sh" "$app/bin/"
sudo cp -vfr "functions/"** "$app/libexec/"