#1 Le 10/08/2012, à 20:24
- toulipe
[Tip] Curl, zenity / yad, téléchargement et barre de progression
Output habituel de curl lors du téléchargement d'un fichier :
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 646M 0 365k 0 0 98218 0 1:54:56 0:00:03 1:54:53 97k
Je veux récupérer quelques informations sur l'état du transfert, et les envoyer à yad ou zenity pour qu'ils m'affichent une jolie barre de progression. Je commence par rediriger le stderr de curl :
url=http://www.something.com/foo.bar
nom_fichier=fichier
fichier_temp=/tmp/fichier-temp
curl $url -O $nom_fichier 2> $fichier_temp ; rm -f $fichier_temp
Puis, dans un autre shell, je récupère les informations qui m'intéressent (ici, le pourcentage du téléchargement, et le temps restant) :
# Pour yad :
while [ -f $fichier_temp ] ; do
awk 'END{ print $(NF-11) "\n#'$nom_fichier' (" $(NF-1) " restant)" }' $fichier_temp 2>/dev/null
sleep 1
done | yad --title='Téléchargements' --window-icon=emblem-downloads --progress
# Pour zenity,
[...]
done | zenity --title='Téléchargement' --progress
etc.
Résultat final :
Yad :
Zenity :
Une méthode plus propre serait d'utiliser un fifo, mais j'avoue ne pas savoir comment m'y prendre. Si quelqu'un a une idée, je suis preneur.
Hors ligne
#2 Le 10/08/2012, à 22:02
- Kooothor
Re : [Tip] Curl, zenity / yad, téléchargement et barre de progression
curl http://k.flood.fr/pub/minecraft-101019.mpeg -# -o deleteme.mpeg
Dernière modification par Kooothor (Le 10/08/2012, à 22:04)
Hors ligne