#1 Le 25/09/2014, à 13:37
- DavidTheDolphin
[Résolu] Rediriger curl vers zenity --progress
Bonjour,
J'essaye d'obtenir une barre de progression zenity depuis curl mais zenity reste désespérément à 0...
curl --limit-rate 10k --progress-bar --anyauth --user $user:$userpwd -o $ladest --create-dirs $laressDL 2>&1 | grep -o "[0-9,]*" | sed "s/,[0-9]*//g" | zenity --progress --no-cancel --auto-close
Si je redirige la sortie vers un fichier texte j'ai bien des nombres de 0 à 100 mais zenity refuse de bouger...
Quelqu'un peut-il m'expliquer ce que j'ai fait de travers siouplé ?
Dernière modification par DavidTheDolphin (Le 29/09/2014, à 13:48)
Hors ligne
#2 Le 25/09/2014, à 13:58
- pingouinux
Re : [Résolu] Rediriger curl vers zenity --progress
Bonjour,
Pour info, je viens de tester ceci qui fonctionne parfaitement :
n=0;while ((++n<100));do echo $n;sleep 1;done | zenity --progress --no-cancel --auto-close
Hors ligne
#3 Le 25/09/2014, à 14:05
- DavidTheDolphin
Re : [Résolu] Rediriger curl vers zenity --progress
Oui ça fonctionne, effectivement, mais ça ne fait pas avancer mon dialogue avec curl
Hors ligne
#4 Le 28/09/2014, à 11:19
- Hizoka
Re : [Résolu] Rediriger curl vers zenity --progress
salut,
peux tu donner un exemple precis de ton code (avec une adresse) pour tester ?
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#5 Le 29/09/2014, à 08:12
- DavidTheDolphin
Re : [Résolu] Rediriger curl vers zenity --progress
Bonjour,
En voici une adaptation sans authentification :
curl --progress-bar --anyauth --create-dirs -O http://ftp.crihan.fr/releases/14.04/ubuntu-14.04-desktop-amd64.iso 2>&1 | grep -o "[0-9,]*" | sed "s/,[0-9]*//g" | zenity --progress --no-cancel --auto-close
Merci
Hors ligne
#6 Le 29/09/2014, à 09:56
- Hizoka
Re : [Résolu] Rediriger curl vers zenity --progress
# Valeur de base servant à comparer la progression
old_valeur="0"
# Boucle traitant chaque retour chariot
while read -d $'\r' ligne
do
# Changement de la ligne en nombre entier, evite d'utiliser une ER
valeur="${ligne##* }"
valeur="${valeur%,*}"
# Comparaison histoire de ne pas envoyer des infos inutiles à zenity, mais c'est facultatif
if [[ ${valeur} != ${old_valeur} ]]
then
echo "${valeur}"
old_valeur="${valeur}"
fi
done < <(curl --progress-bar --anyauth --create-dirs -O http://hizo.fr/linux/wiithon_1.21-trunk-revision-493_i386.deb 2>&1) | zenity --progress
Plusieurs soucis je pense :
- Le retour est un nombre flottant or, ça ne marche pas avec zenity.
- curl affiche bien un retour tout seul, des infos avec un retour chariot (\r), qui ne renvoie plus rien si tu ajoutes ton grep.
De ce fait il faut passer par une boucle qui fonctionne avec les retours chariots : while read -d $'\r' ligne
et utiliser un nombre entier au lieu du nombre flottant : valeur="${ligne##* }" et valeur="${valeur%,*}"
Il est également possible de passer via un fichier comme tu le dis avec une boucle qui lit la derniere ligne du fichier et recupere la valeur comme ci dessus.
Et en version compressée :
while read -d $'\r' ligne; do valeur="${ligne##* }" ; echo "${valeur%,*}"; done < <(curl --progress-bar --anyauth --create-dirs -O http://hizo.fr/linux/wiithon_1.21-trunk-revision-493_i386.deb 2>&1) | zenity --progress
Dernière modification par Hizoka (Le 29/09/2014, à 09:59)
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#7 Le 29/09/2014, à 12:29
- DavidTheDolphin
Re : [Résolu] Rediriger curl vers zenity --progress
Merci
Me reste plus qu'à traduire tout ça en sh
Hors ligne
#8 Le 29/09/2014, à 12:48
- Hizoka
Re : [Résolu] Rediriger curl vers zenity --progress
parce que bash ne te va pas ?
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#9 Le 29/09/2014, à 12:51
- DavidTheDolphin
Re : [Résolu] Rediriger curl vers zenity --progress
Tout mon script est en sh
Hors ligne
#10 Le 29/09/2014, à 12:52
- DavidTheDolphin
Re : [Résolu] Rediriger curl vers zenity --progress
(mais en bash ça marche impec', merci encore )
Hors ligne
#11 Le 29/09/2014, à 13:39
- Hizoka
Re : [Résolu] Rediriger curl vers zenity --progress
il manque plus qu'un petit [resolu]
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#12 Le 29/09/2014, à 13:49
- DavidTheDolphin
Re : [Résolu] Rediriger curl vers zenity --progress
Et hop
Hors ligne