Files
dtic-DIIAA/dtic-BKPs/dtic-BKPs_v5.5.1/src/core/globals.rb
T

57 lines
2.1 KiB
Ruby
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# frozen_string_literal: true
# ==========================================================
# FILE: core/globals.rb
# ==========================================================
# --- CONSTANTES GLOBALES DEL SCRIPT ---
APP_NOM_BASE = 'dtic-BKPs'
APP_NOM = "#{APP_NOM_BASE}_app.rb"
APP_VER = 'v5.5.1' # Actualizado
APP_AUTOR = "Ricardo MONLA ( rmonla@ )"
APP_DIR_SCRIPT = File.dirname(File.expand_path(__FILE__))
APP_CFG_NOM_ARCHIVO = "#{APP_NOM_BASE}_tasks.rb"
APP_LOG_NOM_ARCHIVO = "../logs/#{APP_NOM_BASE}.log"
APP_CFG_RUTA_ARCHIVO = File.join(APP_DIR_SCRIPT, APP_CFG_NOM_ARCHIVO)
APP_LOG_RUTA_ARCHIVO = File.join(APP_DIR_SCRIPT, APP_LOG_NOM_ARCHIVO)
# --- COLORES E ICONOS GLOBALES ---
RESET = "\e[0m"; NEGRITA = "\e[1m"; SUBRAYADO="\e[4m"; INTERMITENTE = "\e[5m"
CIAN = "\e[96m"; AMARILLO = "\e[93m"; ROJO = "\e[91m"; VERDE = "\e[92m"
ICONO_OK = "#{VERDE}#{RESET}"; ICONO_ERROR = "#{ROJO}#{RESET}"; ICONO_WARN = "#{AMARILLO}#{RESET}"; ICONO_INFO = "#{CIAN}#{RESET}"
# --- CONFIGURACIÓN GLOBAL ---
# Bloque para configurar el logger directamente aquí
require 'logger' # Asegúrate de que Logger esté cargado
$logger = Logger.new(APP_LOG_RUTA_ARCHIVO, 'daily')
$logger.level = Logger::INFO # Puedes ajustar el nivel de log aquí
$logger.formatter = proc do |severity, datetime, progname, msg|
"[#{datetime.strftime('%Y-%m-%d %H:%M:%S')}] [#{severity}] #{msg}\n"
end
$estadisticas_ejecucion = { tareas_completadas: {} }
# --- FUNCIÓN DE LOGGING GLOBAL ---
def log(nivel, mensaje)
# Usa esta expresión regular más robusta para eliminar códigos ANSI
msg_l = mensaje.gsub(/\e\[(?:\d{1,3}(?:;\d{1,3})*)?[m|K]/, '')
case nivel
when :info then $logger.info(msg_l)
when :error then $logger.error(msg_l)
when :warn then $logger.warn(msg_l)
else $logger.debug(msg_l)
end
end
# Función auxiliar para verificar si un comando existe
def which(cmd)
exts = ENV['PATHEXT'] ? ENV['PATHEXT'].split(';') : ['']
ENV['PATH'].split(File::PATH_SEPARATOR).each do |path|
exts.each { |ext|
exe = File.join(path, "#{cmd}#{ext}")
return exe if File.executable?(exe) && !File.directory?(exe)
}
end
nil
end