Cuando ejecuta git clone
, actualiza el progreso en su lugar. Por ejemplo, el porcentaje de los objetos recibidos cambia en su lugar.Salida de progreso en el lugar en el terminal o consola
[email protected]:~/cloj/src$ git clone git://git.boinkor.net/slime.git
Initialized empty Git repository in /home/user/cloj/src/slime/.git/
remote: Counting objects: 15936, done.
remote: Compressing objects: 100% (5500/5500), done.
Receiving objects: 28% (4547/15936), 3.16 MiB | 165 KiB/s
¿Cómo se logra esto? ¿Utiliza ncurses o algo aún más simple, como alguna combinación de caracteres de retroceso y salida de caracteres regulares?
Estoy especialmente interesado en cómo este tipo de salida de consola podría lograrse desde Ruby.
EDITAR
se respondió a mi pregunta original. Pero aquí hay un apéndice. Cuando utiliza MPlayer, por ejemplo, no solo actualiza una línea para mostrar el progreso actual, sino también la línea anterior (por ejemplo, cuando presiona pausa).
===== PAUSE =====
A: 79.9 (01:19.9) of 4718.0 (1:18:38.0) 0.3%
¿Cómo actualizarías dos líneas de salida en el lugar?
También eche un vistazo a http://stackoverflow.com/questions/613305/infinite-yields-from-an-iterator – vladr
Esta pregunta y la respuesta asociada son exactamente lo que hace que el desbordamiento de pila sea excelente. Gracias por ellos – num1