| pty_capture_idle |
function |
go |
infra |
1.0.0 |
impure |
func PTYCaptureIdle(ctx context.Context, name string, args []string, warmup time.Duration, inputs []string, stepDelay, idle, maxDur time.Duration) (string, error) |
Lanza un comando dentro de un pseudo-terminal (PTY) en memoria y captura todo su output hasta que el terminal permanece idle durante al menos `idle`, o se alcanza `maxDur`. Soporta envío de inputs interactivos tras el warmup inicial. Devuelve el output RAW con secuencias ANSI intactas. |
| terminal |
| pty |
| tui |
| capture |
| automation |
| terminal-capture |
|
|
|
|
false |
error_go_core |
| context |
| time |
| github.com/creack/pty |
|
true |
| captura output de echo hola |
| input interactivo con cat |
| timeout duro con sleep 10 |
|
functions/infra/pty_capture_idle_test.go |
functions/infra/pty_capture_idle.go |
| name |
desc |
| ctx |
Contexto de cancelación. Si se cancela, la función aborta la captura y retorna el output acumulado hasta ese momento. |
|
| name |
desc |
| name |
Nombre o path del ejecutable a lanzar (debe existir en PATH o ser un path absoluto). |
|
| name |
desc |
| args |
Argumentos posicionales para el ejecutable. Puede ser nil o vacío. |
|
| name |
desc |
| warmup |
Tiempo que la función espera después de arrancar el proceso antes de enviar inputs. Permite que la TUI inicialice su render. Típico: 500ms–2s para CLIs lentas. |
|
| name |
desc |
| inputs |
Lista de strings a escribir al PTY en secuencia, uno por vez. Incluir '\r' al final de cada string para simular Enter. Puede ser nil si solo se quiere observar la salida sin interactuar. |
|
| name |
desc |
| stepDelay |
Espera entre cada input enviado. Permite que la TUI procese y renderice la respuesta de cada paso antes de enviar el siguiente. |
|
| name |
desc |
| idle |
Tiempo sin nuevos bytes en el PTY que se considera 'respuesta terminada'. Cuando el terminal lleva idle sin actividad, la función retorna. Típico: 500ms–2s. |
|
| name |
desc |
| maxDur |
Timeout duro desde el inicio de la función. Garantiza que la función retorna aunque la TUI siga emitiendo output indefinidamente (spinners, relojes). Típico: 30s–120s. |
|
|
String con el output completo del terminal desde el arranque hasta la captura, incluyendo secuencias de escape ANSI. Vacío string si el proceso no produjo nada. Error si el PTY no pudo arrancar o el contexto fue cancelado durante warmup. |