Contenu | Rechercher | Menus

Annonce

Ubuntu-fr.org recrute toujours de nouveaux modérateurs, avec de l'expérience.

Ubuntu 16.04 LTS
Réservez vos DVD et clé USB Ubuntu-fr (premières livraisons mi-mai)

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

M.A.J. en cours du forum possibilité de bug, nous faisons le maximum pour les résoudre au plus vite

#1 Le 10/08/2012, à 21: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, à 23: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, à 23:04)


Utilisateur d'Archlinux | Cruncheur BOINC | Bépoiste
Admin de Flood.fr | Mon ~ | Mes dotfiles
«Your behavior is not funny and is wasting the time of the federal government !»

Hors ligne