Obtener el progreso de clonación de git para el dialog –gauge

Intento escribir un script bash usando el dialog, y parte si implica clonar algunos repositorys git.

Me gustaría utilizar el dialog --gauge para mostrar una barra de progreso, así como también mostrar un --tailbox para mostrar lo que git está haciendo.

Hasta el momento no estoy teniendo suerte de get la información de progreso de git en una forma que el dialog comprenda.

Esto es lo que tengo hasta ahora:

 git clone git@github.com:really-bit-git-repo output-dir --progress 2>&1 | cat > /tmp/gitprocfile & cat /tmp/gitprocfile | grep "[0-9]\{1,2\}%" | awk '{print $7}' | dialog --gauge "Progress" 7 50 

Termino con un file en / tmp / gitprocfile que se parece a esto

 Cloning into 'output-dir'... remote: Counting objects: 103668, done.[K remote: Compressing objects: 0% (1/23688) [K remote: Compressing objects: 1% (237/23688) [K remote: Compressing objects: 2% (474/23688) [K remote: Compressing objects: 3% (711/23688) [K remote: Compressing objects: 4% (948/23688) [K remote: Compressing objects: 5% (1185/23688) [K remote: Compressing objects: 6% (1422/23688) [K remote: Compressing objects: 7% (1659/23688) [K remote: Compressing objects: 8% (1896/23688) [K remote: Compressing objects: 9% (2132/23688) [K remote: Compressing objects: 10% (2369/23688) [K remote: Compressing objects: 11% (2606/23688) [K remote: Compressing objects: 12% (2843/23688) [K remote: Compressing objects: 13% (3080/23688) [K remote: Compressing objects: 14% (3317/23688) [K remote: Compressing objects: 15% (3554/23688) [K remote: Compressing objects: 16% (3791/23688) [K remote: Compressing objects: 17% (4027/23688) [K remote: Compressing objects: 18% (4264/23688) [K remote: Compressing objects: 19% (4501/23688) [K remote: Compressing objects: 20% (4738/23688) [K remote: Compressing objects: 21% (4975/23688) [K remote: Compressing objects: 22% (5212/23688) [K remote: Compressing objects: 23% (5449/23688) [K remote: Compressing objects: 24% (5686/23688) [K remote: Compressing objects: 25% (5922/23688) [K remote: Compressing objects: 26% (6159/23688) [K remote: Compressing objects: 27% (6396/23688) [K remote: Compressing objects: 28% (6633/23688) [K remote: Compressing objects: 29% (6870/23688) [K remote: Compressing objects: 30% (7107/23688) [K remote: Compressing objects: 31% (7344/23688) [K remote: Compressing objects: 32% (7581/23688) [K remote: Compressing objects: 33% (7818/23688) [K remote: Compressing objects: 34% (8054/23688) [K remote: Compressing objects: 35% (8291/23688) [K remote: Compressing objects: 36% (8528/23688) [K remote: Compressing objects: 37% (8765/23688) [K remote: Compressing objects: 38% (9002/23688) [K remote: Compressing objects: 39% (9239/23688) [K remote: Compressing objects: 40% (9476/23688) [K remote: Compressing objects: 41% (9713/23688) [K remote: Compressing objects: 42% (9949/23688) [K remote: Compressing objects: 43% (10186/23688) [K remote: Compressing objects: 44% (10423/23688) [K remote: Compressing objects: 45% (10660/23688) [K remote: Compressing objects: 46% (10897/23688) [K remote: Compressing objects: 47% (11134/23688) [K remote: Compressing objects: 48% (11371/23688) [K remote: Compressing objects: 49% (11608/23688) [K remote: Compressing objects: 50% (11844/23688) [K remote: Compressing objects: 51% (12081/23688) [K remote: Compressing objects: 52% (12318/23688) [K remote: Compressing objects: 53% (12555/23688) [K remote: Compressing objects: 54% (12792/23688) [K remote: Compressing objects: 55% (13029/23688) [K remote: Compressing objects: 56% (13266/23688) [K remote: Compressing objects: 57% (13503/23688) [K remote: Compressing objects: 58% (13740/23688) [K remote: Compressing objects: 59% (13976/23688) [K remote: Compressing objects: 60% (14213/23688) [K remote: Compressing objects: 61% (14450/23688) [K remote: Compressing objects: 62% (14687/23688) [K remote: Compressing objects: 63% (14924/23688) [K remote: Compressing objects: 64% (15161/23688) [K remote: Compressing objects: 65% (15398/23688) [K remote: Compressing objects: 66% (15635/23688) [K remote: Compressing objects: 67% (15871/23688) [K remote: Compressing objects: 68% (16108/23688) [K remote: Compressing objects: 69% (16345/23688) [K remote: Compressing objects: 70% (16582/23688) [K remote: Compressing objects: 71% (16819/23688) [K remote: Compressing objects: 72% (17056/23688) [K remote: Compressing objects: 73% (17293/23688) [K 

Y una barra de progreso que se encuentra en 0%.

¿Me falta algo acerca de cómo pipe / grep / awk los datos de git en el dialog, o este enfoque no va a funcionar?

Como creo que mi comentario es realmente demasiado largo y poco claro aquí es mi udnerstanding:

 git clone git@github.com:really-bit-git-repo output-dir --progress 2>&1 | cat > /tmp/gitprocfile & 

Llamar a git y escribir la salida en un file, cat no es necesario aquí.

 cat /tmp/gitprocfile | grep "[0-9]\{1,2\}%" | awk '{print $7}' | dialog --gauge "Progress" 7 50 

Justo después del command anterior, muestre el file uno con cat y dot el grep, etc. Así obtendrá el contenido del file solo una vez …

Si quisiera una salida de text al final, haría:

  git clone git@github.com:really-bit-git-repo output-dir --progress 2>&1 | tee /tmp/gitprocfile | grep "[0-9]\{1,2\}%" | awk '{print $7}' | dialog --gauge "Progress" 7 50 

Si el dialog está en otro término que el command git:

En la terminal 1:

 echo '' > /tmp/gitprocfile; git clone git@github.com:really-bit-git-repo output-dir --progress 2>&1 >> /tmp/gitprocfile & 

En el terminal 2:

 tail -f /tmp/gitprocfile | grep "[0-9]\{1,2\}%" | awk '{print $7}' | dialog --gauge "Progress" 7 50 

No estoy acostumbrado al dialog, pero al less estoy seguro de que su bash no volverá a cargar el file en el cambio.