#!/bin/bash set -e . /usr/share/debconf/confmodule db_get opengnsys/oggui_ogcoreUrl OGCORE_URL="$RET" db_get opengnsys/oggui_ogmercureUrl OGMERCURE_URL="$RET" # Asegurarse de que el usuario exista USER="opengnsys" CONFIG_FILE="/opt/opengnsys/oggui/browser/assets/config.json" restore_config_if_modified() { local new="$1" local backup="$1.bak" if [ -f "$backup" ]; then if ! cmp -s "$new" "$backup"; then echo ">>> Archivo modificado por el usuario detectado en $new" echo " - Guardando archivo nuevo como ${new}.new" mv -f "$new" "${new}.new" echo " - Restaurando archivo anterior desde backup" mv -f "$backup" "$new" else echo ">>> El archivo $new no ha cambiado desde la última versión, eliminando backup" rm -f "$backup" fi fi } # Detectar si es una instalación nueva o una actualización if [ "$1" = "configure" ] && [ -z "$2" ]; then if [ ! -f "$CONFIG_FILE" ]; then jq --arg apiUrl "$OGCORE_URL" --arg mercureUrl "$OGMERCURE_URL" \ '.apiUrl = $apiUrl | .mercureUrl = $mercureUrl' "$CONFIG_FILE" > "${CONFIG_FILE}.tmp" && mv "${CONFIG_FILE}.tmp" "$CONFIG_FILE" fi ln -s /opt/opengnsys/oggui/etc/nginx/oggui.conf /etc/nginx/sites-enabled/oggui.conf ln -s $CONFIG_FILE /opt/opengnsys/oggui/etc/config.json mkdir -p /etc/nginx/certs/ cp -p /opt/opengnsys/oggui/etc/nginx/certs/* /etc/nginx/certs/ chown -R www-data:www-data /etc/nginx/certs systemctl daemon-reload systemctl restart nginx elif [ "$1" = "configure" ] && [ -n "$2" ]; then cd /opt/opengnsys/oggui echo "Actualización desde la versión $2" # Si upgrade recupero los archivos de configuracion echo ">>> Backup de archivos de configuración reales en /opt/opengnsys" restore_config_if_modified "/opt/opengnsys/oggui/etc/nginx/oggui.conf" restore_config_if_modified "$CONFIG_FILE" fi # Cambiar la propiedad de los archivos al usuario especificado chown opengnsys:www-data /opt/opengnsys/ chown -R opengnsys:www-data /opt/opengnsys/oggui exit 0