[Toulibre] Kiosque de copie sur clé usb
jeanmichel.123 at free.fr
jeanmichel.123 at free.fr
Lun 22 Mai 22:29:28 CEST 2006
Selon Bruno Coudoin <bruno.coudoin at free.fr>:
>
> http://gcompris.net/incoming/friki-0.1.tgz
>
> J'ai mis en place un mécanisme d'auto-détection de clé USB à minima.
> C'est à dire que ca marche mais c'est pas implémenté propre jusqu'au
> bout. Pour que ca marche, il faut avoir dbus et hal sur la machine
> (Testé sur mandriva 2006 qui contient dbus 0.23).
Pour ma part (debian testing), ça ne semble pas marcher avec:
ii dbus 0.61-5 simple
interprocess messaging system
ii hal 0.5.7-1 Hardware
Abstraction Layer
ii gnome-volume-manager 1.5.15-1 GNOME daemon
to auto-mount and manage media
> Si vous n'avez pas dbus, pas de problème, appuyez sur refresh lorsque la
> clé est insérez et montée.
> Par défaut, je pointe suppose que la clé est montée sur "/mnt/removable"
Justement, sur ma machine, le nom du point de montage dépend du label associé au
système de fichier contenu sur la clef (un peu comme sous windows).
Ce qui revien à dire que cette chaine ne devrait peu être pas être constante...
> Si ce n'est pas le cas, changer:
> MOUNT_POINT="/mnt/removable"
>
> Et voila, les remarques sont les bienvenues.
J'ai essayé de détecter automatiquement le point de montage ajouté
automatiquement, mais je n'arrive pas à modifier une variable globale.
Le fichier modifié est disponible ci-joint.
extrait des modifs faites:
# Set here where your system does mount usb keys
WELLKNOWN_MOUNT_POINTS = [ ]
REMOVABLE_MOUNT_POINTS = [ ]
MOUNT_POINT="/mnt/removable"
def mount_points_list ():
output = os.popen("/bin/df -m " )
fs = output.readlines()
del fs[0]
dmp = map ( re.compile( '[\s\n]*' ).split, fs)
mp = map ( lambda x: x[5] , dmp)
print "mps:" + str(mp)
return mp
#initialisation des points de monatges biens connus:
WELLKNOWN_MOUNT_POINTS = mount_points_list ()
def mount_points_detector ():
c = mount_points_list ()
#x = MOUNT_CHECK
for i in WELLKNOWN_MOUNT_POINTS:
if not i in c :
WELLKNOWN_MOUNT_POINTS.remove(i)
for i in REMOVABLE_MOUNT_POINTS:
if not i in c :
REMOVABLE_MOUNT_POINTS.remove(i)
for i in c:
if not i in WELLKNOWN_MOUNT_POINTS :
if not i in REMOVABLE_MOUNT_POINTS :
REMOVABLE_MOUNT_POINTS.append(i)
if len ( REMOVABLE_MOUNT_POINTS) > 0:
MOUNT_POINT = REMOVABLE_MOUNT_POINTS[0]
MOUNT_CHECK = REMOVABLE_MOUNT_POINTS[0]
#x = MOUNT_CHECK
print "mount point set to " + MOUNT_POINT
print "wk:" + str(WELLKNOWN_MOUNT_POINTS)
print "rem:" +str(REMOVABLE_MOUNT_POINTS)
#return MOUNT_CHECK
#return x
def run_df(self):
# Reset categories
for categ_item in self.selections:
self.set_category_status(categ_item, STATUS_UNSELECTED)
#MOUNT_CHECK =
mount_points_detector ()
output = os.popen("/bin/df -ml %s" % (MOUNT_CHECK,))
try:
...
Par ailleurs, il me semble qu'il manque un bouton, pour démonter la clef, mais
je ne suis pas arrivé jusqu'à cette étape.
bonne chance...
-------------- section suivante --------------
Une pièce jointe autre que texte a été nettoyée...
Nom: friki.py
Type: text/x-python
Taille: 14981 octets
Desc: non disponible
URL: <http://toulibre.org/pipermail/toulouse-ll/attachments/20060522/643064df/attachment.py>
Plus d'informations sur la liste de diffusion Toulouse-ll