[ADN / Bitácora] Evolución Progresiva: Sistema de Iconografía Dual (Estado + Semántica)
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user