#!/bin/bash

set -e

backup_file_if_exists() {
    local original="$1"
    local backup="$1.bak"

    if [ -e "$original" ]; then
        echo "   - Guardando backup de $original en $backup"
        cp -a "$original" "$backup"
    fi
}

CONFIG_FILE="/opt/opengnsys/ogcore/api/env.json"
BACKUP_FILE="/opt/opengnsys/ogcore/api/env.json.bak"

# Asegurarse de que el usuario exista
USER="opengnsys"
HOME_DIR="/opt/opengnsys"
if id "$USER" &>/dev/null; then
    echo "El usuario $USER ya existe."
else
    echo "Creando el usuario $USER con home en $HOME_DIR."
    useradd -m -d "$HOME_DIR" -s /bin/bash "$USER"
fi

CONFIG_FILE="/opt/opengnsys/ogcore/api/env.json"
BACKUP_FILE="/opt/opengnsys/ogcore/api/env.json.bak"

# Solo hacemos backup si el archivo existe y es una actualización (posición 1 = upgrade)
if [ "$1" = "upgrade" ]; then
    echo ">>> Backup de archivos de configuración reales en /opt/opengnsys"
    backup_file_if_exists "/opt/opengnsys/ogcore/etc/nginx/sites-available/ogcore.conf"
    backup_file_if_exists "/opt/opengnsys/ogcore/etc/nginx/sites-available/mercure.conf"
    backup_file_if_exists "/opt/opengnsys/ogcore/etc/php/8.3/fpm/pool.d/ogcore-fpm.conf"
    backup_file_if_exists "/opt/opengnsys/ogcore/etc/systemd/system/og-mercure.service"
    backup_file_if_exists "/opt/opengnsys/ogcore/api/env.json"
fi

exit 0

