#1 Le 26/08/2007, à 09:55
- weedfast
Script bash+zenity besoin d'aide svp ........
Voilà je viens de faire un script qui permet d'aspirer un site web à l'aide de wget, le tout à l'aide de zenity.
Étant débutant en la matière (et accessoirement nul ) je trouve que zenity est facile à prendre en main ( bien que ...) . Vous allez me dire qu'il existe déjà une interface graphique pour wget mais ce n'est que pour me permettre d'apprendre un peu...
Voici le script :
#!/bin/bash
# Créer par WeedFast
# Version O.1
# Aspirateur de site web
#############################
## Informations
zenity --info --title="Information" --text="Ce script permet d'aspirer un site web à l'aide de wget.
Dépendance : -wget (apt-get install wget)"
## Vérification de la connexion internet
ping google.com -c 3 | zenity --progress --text="Test de la connexion internet en cours..." --pulsate --auto-close
if [ "${PIPESTATUS[0]}" != "0" ]; then
zenity --error --title="Erreur : Pas de connexion Internet" --title="Test en cours..." --text="Aucune connexion Internet n'a été détectée ou le serveur google.com ne répond pas. Veuillez vérifier vos connexions ou réessayer plus tard." --title="Erreur : Pas de connexion Internet"
exit
fi
## Site web à aspiré
SITE=$(zenity --entry --width=300 --height=150 --title="Sites Web à télécharger" --entry-text="http://" --text="Entrez l'adresse du site web :" )
if [ "${PIPESTATUS[0]}" != "0" ]; then
exit
fi
## Choisir un répertoire pour le télécharchement de $SITE
REP=$(zenity --title="Choisir un répertoire pour le télécharchement de $SITE" --file-selection --directory)
if [ "${PIPESTATUS[0]}" != "0" ]; then
exit
fi
## Changement de répertoire
cd $REP
## Lancement de wget
gnome-terminal --command="wget -r -l5 -np $SITE" | zenity --progress --pulsate --auto-close --text="Téléchargement de $SITE en cours..."
if [ "${PIPESTATUS[0]}" != "0" ]; then
exit
fi
## Fin
zenity --info --title="Téléchargement réussi" --text="Félicitation le site $SITE est téléchargé dans le répertoire $REP"
## Ouverture du répertoire
zenity --question --text="Ouvrir le répertoire $REP?"
if [ "${PIPESTATUS[0]}" != "0" ]; then
exit
fi
nautilus $REP
Comme vous pouvez le voir le code est très "basique" et de nombreuse options sont manquantes mais malgrès ça il y a un "bug" dans ce morceau :
## Lancement de wget
gnome-terminal --command="wget -r -l5 -np $SITE" | zenity --progress --pulsate --auto-close --text="Téléchargement de $SITE en cours..."
if [ "${PIPESTATUS[0]}" != "0" ]; then
exit
fi
La barre de progression de s'affiche pas !! -->
Je voudrais en savoir un peu plus sur la ligne :
[ "${PIPESTATUS[0]}" != "0" ];
PS : Malgré ça ce script fonctionne parfaitement !! ---> Chez moi !!! :P
Merci d'avance pour vos commentaires !!!
Dernière modification par weedfast (Le 27/08/2007, à 16:46)
Mon blog : http://ubunblox.servhome.org/ --> Tutos, Astuces, etc...
Portable : Asus Eee PC
Desktop : Asus P4c800, Intel P4C 3Ghz,
Corsair twinx xms Cas 2 2*512,Nvidia 6800GT
Hors ligne
#2 Le 27/08/2007, à 16:47
- weedfast
Re : Script bash+zenity besoin d'aide svp ........
un PETIT coup de main SVP ?
Mon blog : http://ubunblox.servhome.org/ --> Tutos, Astuces, etc...
Portable : Asus Eee PC
Desktop : Asus P4c800, Intel P4C 3Ghz,
Corsair twinx xms Cas 2 2*512,Nvidia 6800GT
Hors ligne
#3 Le 01/09/2007, à 18:44
- weedfast
Re : Script bash+zenity besoin d'aide svp ........
up
Mon blog : http://ubunblox.servhome.org/ --> Tutos, Astuces, etc...
Portable : Asus Eee PC
Desktop : Asus P4c800, Intel P4C 3Ghz,
Corsair twinx xms Cas 2 2*512,Nvidia 6800GT
Hors ligne
#4 Le 01/09/2007, à 22:19
- snigit
Re : Script bash+zenity besoin d'aide svp ........
Je te colle salement ce que je viens de trouver sur le web (la partie avec "sed")
wget $fichier 2>&1 | sed u 's/.*\ \([0-9]\+%\)\ \+\([0-9.]\+\ [KMB\/s]\+\)$/\1\n# Downloading \2/' | zenity --progress --pulsate --auto-close --text="Téléchargement en cours...""
Je l'ai juste testé pour le téléchargement d'un fichier, ca marche (et en plus t'as le débit qui s'affiche dans la fenêtre) !
Je pense qu'il n'y aura pas de pb pour ton script
Hors ligne
#5 Le 02/09/2007, à 13:28
- soupaloignon
Re : Script bash+zenity besoin d'aide svp ........
Sympa ton script, tu continues à poster les améliorations que tu y apporteras ?
Une petite remarque, la fenetre
"zenity --info --title="Téléchargement réussi" --text="Félicitation le site $SITE est téléchargé dans le répertoire"
s'ouvre, alors que le téléchargement est en cours dans le terminal. Il n'y aurait pas moyen qu'elle n'apparaisse que lorsque ce téléchargement est fini ?
En tout cas bravo, et je m'abonne à ce fil
==> Libérez les huitres du bassin d'Arcachon <==
Hors ligne
#6 Le 03/09/2007, à 20:04
- weedfast
Re : Script bash+zenity besoin d'aide svp ........
le script est à la hauteur de mes compétences... pas terrible donc
je fait juste celui ci pour apprendre !!
| zenity --progress --pulsate --auto-close --text="Téléchargement en cours...""
ne fonctionne toujours pas !!
sinon je voudrais créer un menu dans lesquels ont pourrais choisir les options de wget ainsi que les types de fichier a télécharger....
list_options[] = {
{
"list",
N_("Display list dialog"),
"text",
N_("Set the dialog text"),
"column",
N_("Set the column header"),
"checklist",
N_("Use check boxes for first column"),
"radiolist",
N_("Use radio buttons for first column"),
"separator",
N_("Set output separator character"),
"multiple",
N_("Allow multiple rows to be selected"),
"editable",
N_("Allow changes to text"),
"print-column",
N_("Print a specific column (Default is 1. 'ALL' can be used to print all columns)"),
"hide-column",
N_("Hide a specific column"),
Mon blog : http://ubunblox.servhome.org/ --> Tutos, Astuces, etc...
Portable : Asus Eee PC
Desktop : Asus P4c800, Intel P4C 3Ghz,
Corsair twinx xms Cas 2 2*512,Nvidia 6800GT
Hors ligne
#7 Le 10/09/2007, à 01:26
- Gioo
Re : Script bash+zenity besoin d'aide svp ........
Salut, je suis en train de développer un petit script bash en ce moment mais je tâtonne un peu malgré les cours que j'ai pu avoir cette année sur le sujet.
Je me suis permis de modifier un peu ton script à ma sauce :
#!/bin/bash
# Créer par WeedFast, Modifié par Gio
# Version O.1
# Aspirateur de site web
#############################
### FONCTIONS ###
function annuler {
if [ "${PIPESTATUS[0]}" != "0" ];
then
exit
fi
}
### DÉBUT DU PROGRAMME ###
## Informations
zenity --info --title="Informations" --text="Ce script permet d'aspirer un site web à l'aide de wget.\nDépendance : -wget (apt-get install wget)"
## Vérification de la connexion internet
ping google.com -c 3 | zenity --progress --text="Test de la connexion internet en cours..." --pulsate --auto-close
if [ "${PIPESTATUS[0]}" != "0" ];
then
zenity --error --title="Erreur : Pas de connexion Internet" --text="Aucune connexion Internet n'a été détectée ou le serveur google.com ne répond pas.\nVeuillez vérifier vos connexions ou réessayer plus tard."
exit
fi
## Site web à aspiré
SITE=$(zenity --entry --width=300 --height=150 --title="Sites Web à télécharger" --entry-text="http://" --text="Entrez l'adresse du site web :" )
annuler
## Choisir un répertoire pour le télécharchement de $SITE
REP=$(zenity --title="Choisir un répertoire pour le télécharchement de $SITE" --file-selection --directory)
annuler
## Changement de répertoire
cd $REP
## Lancement de wget
wget -r -l5 -np $SITE | zenity --progress --text="Téléchargement de $SITE en cours..." --pulsate --auto-close
annuler
## Fin
zenity --info --title="Téléchargement réussi" --text="Félicitation le site $SITE est téléchargé dans le répertoire $REP"
## Ouverture du répertoire
zenity --question --text="Ouvrir le répertoire $REP?"
annuler
nautilus $REP
J'ai donc regroupé en une seule fonction 'annuler' les redondances de codes dans ton script et modifié la partie du téléchargement en cours.
Maintenant la fenêtre reste présente pendant toute la durée du téléchargement.
Par contre, la barre de chargement ne bouge pas et le bouton Annuler de cette partie ne stoppe pas le téléchargement (problèmes que je rencontrent aussi sur le script que je développe).
Voilà, si tu trouves des infos sur ces deux bugs
Dernière modification par Gioo (Le 10/09/2007, à 01:50)
http://www.gioo.info
Hors ligne
#8 Le 03/11/2008, à 22:01
- Sbeb
Re : Script bash+zenity besoin d'aide svp ........
C'est peut être un peu tard vu la date des posts, mais ça peut toujours servir
J'ai trouvé comment faire fonctionner la fonction --pulsate de zenity !
(echo ""; ping google.com -c 3)| zenity --progress --text="Test de la connexion internet en cours..." --pulsate --auto-close
En fait, tout ce qu'il manquait pour que ça fonctionne c'est un bête echo "" pour initialiser le "mouvement".
That is not dead which can eternal lie,
And with strange aeon's even death may die.
Hors ligne
#9 Le 04/11/2008, à 21:15
- weedfast
Re : Script bash+zenity besoin d'aide svp ........
C'est peut être un peu tard vu la date des posts, mais ça peut toujours servir
J'ai trouvé comment faire fonctionner la fonction --pulsate de zenity !(echo ""; ping google.com -c 3)| zenity --progress --text="Test de la connexion internet en cours..." --pulsate --auto-close
En fait, tout ce qu'il manquait pour que ça fonctionne c'est un bête echo "" pour initialiser le "mouvement".
Un peu tard certes... Merci quand même
Mon blog : http://ubunblox.servhome.org/ --> Tutos, Astuces, etc...
Portable : Asus Eee PC
Desktop : Asus P4c800, Intel P4C 3Ghz,
Corsair twinx xms Cas 2 2*512,Nvidia 6800GT
Hors ligne