Como aplicar a barra de progresso do zenity / yad do pipe?

1

Eu preciso mostrar uma barra de progresso com zenity ou yad com pacaur / pacman ou yaourt no Arch Linux / Manjaro.

O problema é que não consigo capturar o processo real com pacaur ou outro, apenas com pkcon , mas o pacote de pacotes falhou com o Arch Linux. Esta é a minha linha real com pacaur mas não funciona.

pacaur -S clementine >> /tmp/pacaur-url-tmp |
  tail --lines=1 /tmp/pacaur-url-tmp |
  yad --progress \
    --title="MyProgram - Installing ffdiaporama" \
    --width=300 \
    --height=200 \
    --text="A test my friend" \
    --pulsate \
    --auto-close \
    --button="Cancel (Not recommended):0"

Outro problema, ele sempre pergunta quando precisa de senha root, eu não consigo capturá-lo também com zenity / yad ...

Este é o resultado com o pacote de pacotes , sim é um simples instalador de gui e funciona em todas as distribuições, exceto no Arch Linux não funciona com o pacote de pacotes.

Você pode ver a saída com pacaour aqui .

    
por davidva 18.03.2014 / 18:58

1 resposta

4

Isso deve funcionar, eu testei na saída que você postou. Note que eu usei zenity desde yad não está nos repositórios da Debian. Isso também é bash .

(
  exec {fd}>&1
  stdbuf -oL pacaur -S clementine |
    stdbuf -oL tee /dev/fd/$fd |
    stdbuf -oL sed -n '/\.\.\.$/ s/^/# /p' |
    zenity --progress --title="pacaur progress" --pulsate \
      --width=450 --auto-close
)

Uma coisa que pode dar errado é que pacaur pode imprimir dados de progresso para stderr em vez de stdout , caso em que a segunda linha provavelmente precisará ser:

 stdbuf -eL -oL pacaur -S clementine 2>&1 |

Eu adicionei as linhas exec {fd}>&1 e tee /dev/fd/$fd para que a saída também seja impressa no terminal. Sem isso, este script será simplesmente:

  stdbuf -oL pacaur -S clementine |
    stdbuf -oL sed -n '/\.\.\.$/ s/^/# /p' |
    zenity --progress --title="pacaur progress" --pulsate \
      --width=450 --auto-close

Por acaso, na minha opinião, o terminal é o melhor lugar para procurar o progresso da instalação, mas desde que você perguntou, zenity é uma coisa boa para brincar.

    
por 18.03.2014 / 22:44

Tags