#1 Le 03/05/2006, à 17:53
- benjou
[résolu]Auto-run program on new drives and media
Bonjour,
Cette option se trouve dans les preferences pour les media amovibles.
En français ça doit donner quelque chose comme "Execution automatique des programmes sur les nouveaus lecteurs et media"
Mon problème est le suivant: j'aimerais que quand je branche mon lecteur mp3 (UMS) un programme se lance qui copie mes podcasts dessus directement. J'ai donc pensé mettre un script sur la racine du lecteur pour ce faire et cocher l'option susnommée afin que ce script se lasnce au montage du lecteur.
En fait, rien ne se passe...
Bon, le lecteur est evidemment en FAT32 donc impossible de dire que le script est executable (ce serait idiot que cela soit la raison vu que 99% des perifs. de stockage amovibles ne gèrent pas les droits)
Quelqu'un a des idées pour que le script s'execute?
Ou à défaut une autre manière de recopier mes podcasts sur mon lecteur?
Merci
Dernière modification par benjou (Le 05/05/2006, à 13:38)
écrasons l'infâme
Hors ligne
#2 Le 04/05/2006, à 08:15
- benjou
Re : [résolu]Auto-run program on new drives and media
J'upoie avec politesse mais fermeté!!!!
écrasons l'infâme
Hors ligne
#3 Le 04/05/2006, à 08:30
- benjou
Re : [résolu]Auto-run program on new drives and media
Resolu.
Pour que le script s'execute, il doit s'appeler autorun.sh!
maintenant, il faut que je fasse un script nickel pour synchronizer les données, si possible avec rsync et zenity pour avaoir une barre de progression mais la, ça va être cotton parce que je n'y connais rien.
Any advice welcome
écrasons l'infâme
Hors ligne
#4 Le 04/05/2006, à 08:46
- Anbreizh
Re : [résolu]Auto-run program on new drives and media
C'est extremement facile a faire en bash Dis moi ce que tu veux exactement et je te donne un script
"C'est le devoir de chaque homme de rendre au monde au moins autant qu'il en a reçu" Albert Einstein
Pour votre webcam : http://projet.jbtheou.fr
Mon site web (Mathématique, physique, science et service de publication ) http://jbtheou.fr
Hors ligne
#5 Le 04/05/2006, à 09:03
- benjou
Re : [résolu]Auto-run program on new drives and media
#!/bin/sh
rsync -rtvz --progress ~/Podcasts/ /media/usbdisk/aaa/ | zenity --text-info --width=600 --height=600 --title="Rsync Output"
voila ce que j'ai trouvé (quai recopié du net).
Ca fait le job (recopie le contenu ~/Podcast dans /aaa sur /media /usbdisk)
Pour pinailler, j'aurai préféré une barre de progression (plutot que du texte) et que la fenêtre zenity se ferme toute seule à la fin.
J'ai essayé l'option --progress pour zenity mais le truc ne bouge pas . Il ne doit pas obtenir les bonnes infos...
Dernière modification par benjou (Le 04/05/2006, à 09:03)
écrasons l'infâme
Hors ligne
#6 Le 04/05/2006, à 09:08
- benjou
Re : [résolu]Auto-run program on new drives and media
A part ça, c'est typique le genre de truc qu'un prog de musique gérant les podcasts devrait pouvoir copier sur ton lecteur mp3 pour que ça update automatiquement les podcasts sur le lecteur.
écrasons l'infâme
Hors ligne
#7 Le 04/05/2006, à 13:55
- cep_
Re : [résolu]Auto-run program on new drives and media
il ne faudra pas oublier d'autoriser les executables sur les nouveaux medias, et il y a le problème du exec dans pmount plus l'adresse de mount éventuellement changeante.
DOnc voir aussi avec udev.
#8 Le 04/05/2006, à 14:21
- benjou
Re : [résolu]Auto-run program on new drives and media
merci cep mais
autoriser les executables sur les nouveaux medias
apparemment par defaut ça marche (gnome demande quand même une confirmation avant de lancer le script (et à condition qu'il se nomme autorun, voir plus haut)
le problème du exec dans pmount
La, je ne vois pas trop de quoi tu veux parler...
l'adresse de mount éventuellement changeante.
Ca c'est vrai. mais il doit y avoir un moyen de faire une variable avec le path chemin du dossier où se trouve le script. non? ensuite où que soit monté le média (médium?) cette variable s'ajuste et il suffit de changer /media/usbdisk/ par ta variable dans le script.
Des idées pour faire cette variable?
écrasons l'infâme
Hors ligne
#9 Le 04/05/2006, à 14:44
- benjou
Re : [résolu]Auto-run program on new drives and media
Flûte,
Je croyais que le script serait executé depuis le dossier où il se trouve et qu'une commande 'pwd' nous donnerais le chemin. Malheureusement, il est executé depuis ~/ .
Je ne sais donc pas comment récupérer ce chemin
Dernière modification par benjou (Le 04/05/2006, à 16:22)
écrasons l'infâme
Hors ligne
#10 Le 04/05/2006, à 15:24
- benjou
Re : [résolu]Auto-run program on new drives and media
En fait, puisque le script se lance au montage du periph, le periph en question doit être le dernier du /etc/mtab.
Il suffit donc de récupérer le point de montage dans ce fichier
écrasons l'infâme
Hors ligne
#11 Le 04/05/2006, à 15:57
- benjou
Re : [résolu]Auto-run program on new drives and media
Je ne désespère pas
la commande
cat /etc/mtab|awk '{print $2}'
me donne tous les points de montage. Il suffit de selectionner le dernier. Ça devrait pas être trop dur...
écrasons l'infâme
Hors ligne
#12 Le 04/05/2006, à 16:19
- benjou
Re : [résolu]Auto-run program on new drives and media
Ca y est
awk 'END {print $2}' /etc/mtab
donne le dernier point de montage créé
Mon script devient le suivant:
#!/bin/sh
#determine le point de montage
MOUNTPOINT=$(awk 'END {print $2}' /etc/mtab)
rsync -rtvu --delete --progress ~/Podcasts/ $MOUNTPOINT/aaa | zenity --text-info --title="Updating Podcasts" --width=600 --height=600
Bon ben cep, voilà un de tes problèmes réglés...
Je me sens seul les gars
EDIT: Jái rajouté l'option delete (si un podcast n'existe plus sur l'ordi il est détruit sur le player) j'ai enlevé l'option z (complètement crétin sur une connection USB) et rajouté l'option u (update seulement si le fichier est différent de celui sur le player)
Dernière modification par benjou (Le 04/05/2006, à 16:53)
écrasons l'infâme
Hors ligne
#13 Le 04/05/2006, à 18:42
- bertrand0
Re : [résolu]Auto-run program on new drives and media
Tu peux aussi utiliser CHEMIN=$(dirname $0)
Pour que $CHEMIN contienne le chemin d'accès vers ton script, et donc vers ton media si j'ai bien compris.
Ceux qui écrivent comme ils parlent, quoiqu'ils parlent très bien, écrivent mal.
Buffon, Discours sur le style
Hors ligne
#14 Le 04/05/2006, à 18:51
- bertrand0
Re : [résolu]Auto-run program on new drives and media
Une autre façon de faire pour récupérer le point de montage:
D'abord, la commande suivante:
hal-find-by-property --key block.device --string /dev/sda1
(où tu remplaces sda1 par le périphérique courant de ton pod)
te renvoie l'udi associé à ton pod, qui est unique et constant.
Tu le notes, et dans ton script tu mets:
UDI=identifiant_unique_obtenu_plus_haut
POINT_DE_MONTAGE=$(hal-get-property --udi $UDI --key volume.mount_point)
Ta variable $POINT_DE_MONTAGE contient alors le chemin d'accès vers ton script, si tu l'as mis dans la racine de ton pod.
Ceux qui écrivent comme ils parlent, quoiqu'ils parlent très bien, écrivent mal.
Buffon, Discours sur le style
Hors ligne
#15 Le 05/05/2006, à 08:48
- benjou
Re : [résolu]Auto-run program on new drives and media
C'est génial ton truc! le uid est tout le temps gardé?
Alors j'ai changé
MOUNTPOINT=$(awk 'END {print $2}' /etc/mtab)
pour
MOUNTPOINT=$(hal-get-property --udi /org/freedesktop/Hal/devices/volume_uuid_4054_7015 --key volume.mount_point)
Le seul problème c'est que maintenant, je suis condamné à écrire un script pour installer un script autorun.sh personnalisé sur le lecteur
écrasons l'infâme
Hors ligne
#16 Le 05/05/2006, à 12:42
- sksbir
Re : [résolu]Auto-run program on new drives and media
il me semble qu'il y a une option de lancement de programme au montage d'un disque amovible:
dans Système>Administration>Gestionnaire de disques
Hors ligne
#17 Le 05/05/2006, à 13:37
- benjou
Re : [résolu]Auto-run program on new drives and media
il me semble qu'il y a une option de lancement de programme au montage d'un disque amovible:
Pas trouvé cette option...
Je vais passer ce post en résolu car je crois que rappatrier l'output de rsync --progress pour faire bouger la barre de zenity est largement au dessus de mes forces
écrasons l'infâme
Hors ligne
#18 Le 05/05/2006, à 14:38
- benjou
Re : [résolu]Auto-run program on new drives and media
Allez, si il y en a de motivés...
Le probleme c'est que dans l'output de rsync --progress, chaque ligne est séparée de la suivante par un retour de charriot (\r) et non par une nouvelle ligne (\n). Donc l'output n'est pas envoyé au fur et à mesure à l'appli qui va la traiter (grep, awk et ultimement zenity) donc l'appli en question reçoit tout l'output d'un coup quand la manip est terminée (pas terrible pour une barre de progression)
Si quelqu'un sait comment envoyer des lignes séparées par des retours de charriot au stdout, qu'il n'hésite pas...
écrasons l'infâme
Hors ligne
#19 Le 05/05/2006, à 16:15
- bertrand0
Re : [résolu]Auto-run program on new drives and media
Avec sed, ça passe bien, je pense:
rsync --progress $ANY_OPTION | sed "y/\r/\n/"
Ceux qui écrivent comme ils parlent, quoiqu'ils parlent très bien, écrivent mal.
Buffon, Discours sur le style
Hors ligne
#20 Le 05/05/2006, à 17:12
- benjou
Re : [résolu]Auto-run program on new drives and media
rsync -rtvu --delete --log-format="" --progress source/ cible/ |sed "y/\r/\n/"|awk '{print $6}'
me donne bien le pourcentage en temps reel mais impossible de le passer a zenity...
écrasons l'infâme
Hors ligne
#21 Le 05/05/2006, à 17:40
- bertrand0
Re : [résolu]Auto-run program on new drives and media
J'ai survolé rapidement la page man de zenity... Est-ce que tu ne devrais pas utiliser l'option --progress plutôt que --text-info par hasard ?
EDIT: et l'option --auto-close aussi d'ailleurs.
Dernière modification par bertrand0 (Le 05/05/2006, à 17:41)
Ceux qui écrivent comme ils parlent, quoiqu'ils parlent très bien, écrivent mal.
Buffon, Discours sur le style
Hors ligne
#22 Le 05/05/2006, à 17:51
- benjou
Re : [résolu]Auto-run program on new drives and media
Yep
j'utilise --progress et --autoclose dans les scipts ou j'essaie d'obtenir une barre de progression (celui qui est plus haut donne la progression en texte avec --text-info: c'est pas joli mais ca marche;) )
En principe, il faut piper le stdout vers zenity et si ce stdout est bien une valeur entre 0 et 100, ca va droit dans la barre de progression.
écrasons l'infâme
Hors ligne
#23 Le 08/05/2006, à 22:01
- sksbir
Re : [résolu]Auto-run program on new drives and media
salut
effectivement, je m'étais trompé.
Regarde plutot:
systeme--> preferences --> peripheriques et media amovible
ou par lancement direct dans une console :
gnome-volume-properties
cette application permet de configurer gnome-volume-manager
L'option qui me parait intéressante est : "lancer automatiquement des programmes sur les nouveaux périphériques et médias".
Sinon, on peut aussi aller dans application-->outils systeme --> editeur de configuration gconf
puis desktop-->gnome-->volume manager
En cherchant dans google avec les mots clés "gnome volume manager auto-run programs on new drives and media"
on trouve ceci ce qui me laisse à penser que le sujet est pour le moins délicat et toujours d'actualité.
Hors ligne
#24 Le 09/05/2006, à 08:11
- benjou
Re : [résolu]Auto-run program on new drives and media
Salu sksbir,
Malheureusement il semble que tu retarde un peu . Comme indique plus haut, cette option fonctionne tres: il faut juste nommer le script 'autorun.sh'
écrasons l'infâme
Hors ligne
#25 Le 09/05/2006, à 13:03
- sksbir
Re : [résolu]Auto-run program on new drives and media
c'est option fonctionne très... très bien, je suppose..
ha bon, ça marche ? parce que d'apres le sujet de la discussion dans le rapport de bug (voir ici ) c'était pas gagné.
Hors ligne