[MEJORA] Salida visual mejorada para pipelines DASUTEN

Se implementó mejora en la salida de comandos para hacerla más intuitiva:

Cambios realizados:
- bkps.rb: Encabezado y cierre visual con box drawing para tareas DASUTEN
- ejecutor.rb: Barra de progreso con timer en tiempo real durante ejecución
- A04.P006: Actualizado con resultados del test completo 2026-04-15

Nueva salida visual:
- Encabezado con contexto del pipeline (nombre, hora de inicio)
- Timer en vivo durante la ejecución ([1m 23s] ejecutando...)
- Cierre con estado (/) y duración total

Resultados del test completo (Pipeline FULL):
- 6 pasos completados exitosamente en 13m 15s
- DBCC CHECKDB: Integridad OK
- Todos los drones atómicos funcionaron correctamente

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Ricardo Monla
2026-04-15 11:18:48 -03:00
co-authored by Claude Opus 4.6
parent 4a0cdd883e
commit db86f86e59
3 changed files with 135 additions and 3 deletions
+27 -2
View File
@@ -750,7 +750,21 @@ module ADN
end
t_inicio = Time.now
@logger.info("#{tarea[:texto]} (#{tipo})")
# Encabezado visual para tareas DASUTEN
es_dasuten = (tipo == 'dasuten')
if es_dasuten
puts ""
puts "╔═══════════════════════════════════════════════════════════╗"
puts "║ 🔄 Pipeline DASUTEN — #{tarea[:texto].ljust(35)}"
puts "╠═══════════════════════════════════════════════════════════╣"
puts "║ Inicio: #{Time.now.strftime('%H:%M:%S')}".ljust(55) + ""
puts "╚═══════════════════════════════════════════════════════════╝"
puts ""
else
@logger.info("#{tarea[:texto]} (#{tipo})")
end
procesador = factory.call(@logger)
# Modo atómico: procesar un solo archivo
@@ -764,7 +778,18 @@ module ADN
duracion = (Time.now - t_inicio).to_i
mins = duracion / 60
segs = duracion % 60
@logger.info("#{tarea[:texto]}#{mins}m#{segs}s")
if es_dasuten
estado = resultado ? "✅ Completado" : "❌ Fallido"
puts ""
puts "╔═══════════════════════════════════════════════════════════╗"
puts "#{estado} — Duración: #{mins}m #{segs}s".ljust(55) + ""
puts "╚═══════════════════════════════════════════════════════════╝"
puts ""
else
@logger.info("#{tarea[:texto]}#{mins}m#{segs}s")
end
resultado
end