Как применить индикатор прочности трубы / yad?

Мне нужно отобразить индикатор выполнения с zenity или yad с помощью pacaur / pacman или yaourt в Arch Linux / Manjaro.

Проблема в том, что я не могу зафиксировать фактический процесс с помощью pacaur или другого, только с pkcon , но пакетный файл не удался с Arch Linux. Это моя реальная линия с pacaur, но не работает.

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" 

Другая проблема, она когда-либо спрашивает, когда нужен пароль root, я не могу его захватить и с zenity / yad …

Это результат с пакетом , да – простой установщик gui и работает во всех дистрибутивах, но Arch Linux не работает с packagekit.

Здесь вы можете увидеть результат с помощью pacaour.

Это должно работать, я проверил его на выходе, который вы опубликовали. Обратите внимание, что я использовал zenity поскольку yad не находится в репозиториях Debian. Также это только 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 ) 

Одна вещь, которая может пойти не так, так это то, что pacaur может печатать данные прогресса в stderr вместо stdout , и в этом случае, вероятно, вторая строка должна быть:

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

Я добавил строки exec {fd}>&1 и tee /dev/fd/$fd чтобы выход также был распечатан на терминал. Без этого этот скрипт будет просто:

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

Кстати, на мой взгляд, терминал – лучшее место для поиска прогресса в установке, но, поскольку вы спросили, zenity – хорошая вещь, с которой можно играть.