Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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 :
yad

Zenity :
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

tongue

Dernière modification par Kooothor (Le 10/08/2012, à 22:04)

Hors ligne