Jonon a écritEdit: j'ai essayé de modifier ton script GrumZ (copy to via SSH), en particulier les script "copyto.py" qui m'a paru fort sympathique. Malheuresement j'ai été incapable de comprendre son fonctionnement. :s
Pour commencer, essaye de voir mon tutorial sur les scripts en python pour Nautilus-actions. CopyTo en est grandement inspiré:
http://www.grumz.net/node/75
Ensuite, voila un debut d'explication de la partie spécifique :
[snip]
1 def ActionOKHandler (self, widget):
2 server = self.get_widget ("ComboBoxEntryServer").child.get_text ()
3 user = self.get_widget ("ComboBoxEntryUser").child.get_text ()
4 folder = self.get_widget ("ComboBoxEntryFolder").child.get_text ()
5 if len (server) > 0:
6 files_str = ""
7 for file in file_list:
8 files_str += " %s" % (file)
9 cmd = "/usr/bin/scp -r %s %s@%s:%s | zenity --progress --pulsate" % (files_str, user, server, folder)
10 print cmd
11 self.get_widget ("CopyToDialog").hide ()
12 print commands.getoutput (cmd)
13 gtk.main_quit ()
[snip]
Le principal se passe dans cette fonction qui est appelée quand l'utilisateur clique sur "OK".
* ligne 2 à 4, on récupère le texte que l'utilisateur a mis dans les combobox (j'ai mis des combos car dans le futur, je compte garder les valeurs entrées à chaque fois et les remettre dans la liste, mais pour l'instant j'ai eu la fleme 😉 )
Le nom entre guillemets correspond au nom du widget définit dans glade.
* ligne 5, je teste si la chaine pour le nom du serveur n'est pas vide (taille > 0)
* ligne 6 à 8, je concatène la liste de fichiers donné en parametre au script par Nautilus (via Nautilus-actions : "%M" )
* ligne 9, je génère la commande que je veux lancer, chaque "%s" est remplacé par sa valeur respective dans la liste entre parenthèses.
* ligne 11, je cache la boite de dialogue.
* ligne 12, j'execute la commande qui doit ressembler à quelque chose du genre :
/usr/bin/scp -r /home/toto/file1.txt /home/toto/file2.txt toto@mon_serveur.chez.moi:/home/toto | zenity --progress --pulsate
* ligne 13, je quitte le programme.
voila, si il y a autre chose de pas clair, hesite pas à demander, j'essairais de surveiller de temps en temps ce thread.
GrumZ
--
http://www.grumz.net/