As barras de progresso voltaram ao Ubuntu Perfeito

Pois é, as barras de progresso no Intrepid quando se realizava um download funcionava até o RC, mas depois que saiu a versão final do Intrepid ela parou de funcionar, antes era assim :

wget http://url.para.o.arquivo 2>&1 | sed -u ‘s/.*\ \([0-9]\+%\)\ \+\([0-9.]\+\ [KMB\/s]\+\)$/\1\n# Downloading \2/’ | zenity --progress --title="Descarregando arquivo…"

Agora, o novo modelo é esse :

BAIXAR_URL="http://url.para.o.arquivo"
BAIXAR_EM="/tmp/`basename $BAIXAR_URL`"
[ -f /tmp/wget.1 ] && rm -f /tmp/wget.1
wget -vc --timeout=30 --tries=3 "$BAIXAR_URL" -O "$BAIXAR_EM" 2>/tmp/wget.1&
MYPID=$!
while ! [ -z `ps -p ${MYPID} | grep ${MYPID}` 2>/dev/null ] ; do
__perc_concluido=`cat /tmp/wget.1|grep "%"|tail -n1|cut -b 63-66|tr -d " "`
__echo $perc_concluido
done |zenity --progress --auto-close --title="Descarregando arquivo" --text "\nDownload de :\n\t$BAIXAR_URL\nDownload para :\n\t$BAIXAR_EM..."

Mais bonito e mais complexo, porém com um agravante maior, na versão usando ‘sed’ não há swap no disco, usa apenas a saída padrão para recortar do wget apenas o %concluído e usado no zenity. No meu workaround (português=gambiarra), é mais belo, é mais bonito, mas para exibir o % de conclusão corretamente tenho de gerar um arquivo de log da saída do wget. Não sou purista, mas deve haver algum jeito a-la-via ‘sed’ com o qual o zenity --progress funcione. Se você souber como, por gentileza, faz me saber.

  1. #1 por slipttees em 19 \19\UTC novembro \19\UTC 2009 - 17:26

    export http_proxy=”http://usuario:senha@ip:porta”
    cd /tmp ; wget -c –proxy=on –tries=0 http://supportdownload.apple.com/download.info.apple.com/Apple_Support_Area/Apple_Software_Updates/Mac_OS_X/downloads/061-7261.20091109.Chp62/MacOSXUpd10.6.2.dmg 2>&1 | sed -u ‘s/.* \([0-9]\+%\)\ \+\([0-9.]\+.\) \(.*\)/\1\n# Baixando a \2\/s, ETA \3/’ | zenity –progress –title=”Baixando” –percentage=0 –auto-close

%d blogueiros gostam disto: