oginstaller/openGnsys-installer.sh

59 lines
2.1 KiB
Bash

#!/bin/bash
# Paso 1: Seleccionar los componentes
components=$(yad --list --title="Seleccionar componentes" \
--text="Selecciona los componentes que deseas configurar:" \
--checklist --multiple \
--column="Seleccionar" --column="Componente" \
FALSE "ogCore" \
FALSE "ogGui" \
FALSE "ogDhcp" \
FALSE "ogBoot" \
--width=400 --height=300 --center)
# Verificar si el usuario seleccionó algún componente
if [[ -z "$components" ]]; then
yad --info --text="No seleccionaste ningún componente. Saliendo..." --center
exit 1
fi
# Procesar los componentes seleccionados, eliminando la primera columna (TRUE)
echo $components
IFS="|" read -r -a selected_components <<< "$components"
for component in "${selected_components[@]}"; do
# Extraer solo el nombre del componente (segundo campo)
component_name=$(echo "$component" | cut -d '|' -f 2)
# Pedir la configuración específica para cada componente seleccionado
config=$(yad --form --title="Configuración para $component_name" \
--field="IP del servidor" \
--field="Ruta del fichero de configuración" \
--width=400 --height=200 --center)
# Dividir la configuración en IP y ruta del fichero
server_ip=$(echo "$config" | cut -d '|' -f 1)
config_path=$(echo "$config" | cut -d '|' -f 2)
# Verificar si los campos no están vacíos
if [[ -z "$server_ip" || -z "$config_path" ]]; then
yad --error --text="Debes proporcionar la IP del servidor y la ruta del fichero para $component_name." --center
exit 1
fi
# Guardar la configuración en un archivo (cada componente tiene su archivo JSON)
config_file="./${component_name}_config.json"
echo "{\"server_ip\": \"$server_ip\", \"config_path\": \"$config_path\"}" > "$config_file"
# Mostrar un mensaje de éxito
yad --info --text="Configuración guardada en $config_file para $component_name." --center
done
# Una vez se ha configurado todo, se puede proceder a la instalación de los componentes
# Ejecutar la instalación con calamares y enviar el log a un archivo
#calamares > installer.log 2>&1 & disown
sudo calamares > installer.log 2>&1