[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