Files
dtic-DIIAA/dtic-BKPs/dtic-BKPs_v5.5.1/fxs/config_handler.rb
T

79 lines
3.0 KiB
Ruby

# frozen_string_literal: true
# ==========================================================
# FILE: fxs/config_handler.rb
# ==========================================================
def cargar_configuracion
unless File.exist?(APP_CFG_RUTA_ARCHIVO)
puts "#{ICONO_WARN} Archivo de configuración de tareas no encontrado: #{APP_CFG_RUTA_ARCHIVO}."
puts "#{ICONO_INFO} Usando configuración interna. Los cambios se guardarán en un nuevo archivo."
# Si el archivo no existe, devuelve valores predeterminados (vacíos o un ejemplo)
return [], [], true # Retorna tareas vacías, comandos vacíos y auto_avanzar en true
end
begin
# Carga el archivo de configuración. Esto definirá TAREAS_CONFIG y COMANDOS_CONFIG
load APP_CFG_RUTA_ARCHIVO
unless defined?(TAREAS_CONFIG) && TAREAS_CONFIG.is_a?(Array)
puts "#{ICONO_ERROR} TAREAS_CONFIG no está definida correctamente en '#{APP_CFG_RUTA_ARCHIVO}'."
exit 1
end
unless defined?(COMANDOS_CONFIG) && COMANDOS_CONFIG.is_a?(Array)
puts "#{ICONO_ERROR} COMANDOS_CONFIG no está definida correctamente en '#{APP_CFG_RUTA_ARCHIVO}'."
exit 1
end
auto_avanzar = defined?(AUTO_AVANZAR_TAREA_MENU) ? AUTO_AVANZAR_TAREA_MENU : true
return TAREAS_CONFIG, COMANDOS_CONFIG, auto_avanzar
rescue LoadError, SyntaxError => e
puts "#{ICONO_ERROR} Error cargando configuración desde '#{APP_CFG_RUTA_ARCHIVO}':\n#{e.message}"
exit 1
end
end
def guardar_configuracion(tareas, comandos, auto_avanzar)
begin
File.open(APP_CFG_RUTA_ARCHIVO, 'w') do |f|
f.puts "# frozen_string_literal: true\n"
f.puts "# =========================================================="
f.puts "# Archivo de Configuración para #{APP_NOM_BASE}"
f.puts "# Generado automáticamente el #{Time.now.strftime('%Y-%m-%d %H:%M:%S')}"
f.puts "# ==========================================================\n"
f.puts "AUTO_AVANZAR_TAREA_MENU = #{auto_avanzar}\n"
f.puts "TAREAS_CONFIG = ["
tareas.each do |tarea|
f.puts " {"
tarea.each { |key, value| f.puts " #{key}: #{value.inspect}," }
f.puts " },"
end
f.puts "]\n"
f.puts "COMANDOS_CONFIG = ["
comandos.each do |comando|
f.puts " {"
comando.each do |key, value|
if key == :tareas
f.puts " #{key}: [#{value.map(&:inspect).join(', ')}],"
else
f.puts " #{key}: #{value.inspect},"
end
end
f.puts " },"
end
f.puts "]"
end
puts "\n#{ICONO_OK} Configuración de tareas y comandos guardada en '#{APP_CFG_NOM_ARCHIVO}'."
log :info, "Configuración de tareas y comandos actualizada y guardada por el usuario."
sleep 1.5
return true
rescue StandardError => e
puts "\n#{ICONO_ERROR} No se pudo guardar la configuración: #{e.message}"
log :error, "Fallo al guardar configuración de tareas y comandos: #{e.message}"
sleep 2
return false
end
end