Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#826 Le 07/07/2011, à 17:03

Elzen

Re : /* Topic des codeurs couche-tard [5] */

grim7reaper a écrit :

pmount.
Après je sais qu'on peut faire des trucs avec udev, mais moi j'ai fait que du montage auto avec (jamais regardé pour du manuel).

Ça reste un paquet à installer, mais c'est effectivement mieux que rien (par contre, ça ne marche apparemment pas sur les images disques, il faut que le truc soit dans /dev… ça aurait été sympa, une gestion des périphériques qui puisse prendre en compte les images disques, j'trouve).


Mais les navigateurs de fichiers, genre PcManFM, ils font comment ? :o

Hors ligne

#827 Le 07/07/2011, à 17:38

grim7reaper

Re : /* Topic des codeurs couche-tard [5] */

ArkSeth a écrit :

Mais les navigateurs de fichiers, genre PcManFM, ils font comment ? yikes

C'est un logiciel libre, donc tu peux lire le code pour le savoir :]

Hors ligne

#828 Le 07/07/2011, à 17:46

The Uploader

Re : /* Topic des codeurs couche-tard [5] */

Thunar, le code est plus propre. tongue


- Oldies PC : Intel Pentium 3 @ 800 Mhz sur CM ASUS P2B-F, GeForce 4 Ti4800 SE, Disque Dur Hitachi 160 Go, 512 Mo de RAM, 3DFX Voodoo 2, Sound Blaster 16 ISA PnP, Windows 98 SE / XP)
- Desktop : Intel Core i7 6700K @ 4 GHz sur CM ASUS Z170-P, GeForce GTX 1070, SSD Samsung 850 EVO 1 To, 16 Go de RAM, Disque Dur Seagate Barracuda 3 To, Windows 10

Hors ligne

#829 Le 07/07/2011, à 17:48

Elzen

Re : /* Topic des codeurs couche-tard [5] */

Bah j'ai déjà essayé de jeter un œil au source, mais j'ai vite été découragé, quand même. Les trucs en C, à part quand ce sont de petits exemples ou quand je les ai codé moi-même, j'ai toujours du mal à les lire.


Sinon, j'viens de tomber sur udisks, aussi, pour les périphériques. Pas encore testé, mais ça a l'air d'être le vrai truc à utiliser, non ?

Hors ligne

#830 Le 07/07/2011, à 17:52

grim7reaper

Re : /* Topic des codeurs couche-tard [5] */

Yep, il semblerait.

Hors ligne

#831 Le 07/07/2011, à 17:55

xapantu

Re : /* Topic des codeurs couche-tard [5] */

ArkSeth a écrit :

Bah j'ai déjà essayé de jeter un œil au source, mais j'ai vite été découragé, quand même. Les trucs en C, à part quand ce sont de petits exemples ou quand je les ai codé moi-même, j'ai toujours du mal à les lire.

Regarde du côté de gvfs/gio…
http://developer.gnome.org/gio/2.29/GVolumeMonitor.html
http://developer.gnome.org/gio/2.29/GMount.html

Si tu veux des exemples en C plus clair, je peux en trouver, je connais pas mal le code source d'un fm (marlin) tongue

Dernière modification par xapantu (Le 07/07/2011, à 17:56)

Hors ligne

#832 Le 07/07/2011, à 17:55

The Uploader

Re : /* Topic des codeurs couche-tard [5] */

Yép : http://gezeiten.org/post/2010/01/Thunar … ion-of-HAL (ça parle de GIO, udev, udisk, et HAL)

Thunar-volman, plus précisement (petit plugin): http://goodies.xfce.org/projects/thunar … nar-volman pour l'automount de périphériques et médias (si tu veux voir le code).

Après, pour le mount manuel, c'est plus du côté de Thunar tout court (ex: une partition peut être listée dans les raccourcis mais non montée avant d'être selectionnée, et pour ça pas besoin de thunar-volman) :

% pacman -Qi thunar
Name           : thunar
Version        : 1.2.2-1
URL            : http://thunar.xfce.org
Licenses       : GPL2  LGPL2.1
Groups         : xfce4
Provides       : None
Depends On     : desktop-file-utils  libexif  hicolor-icon-theme
                 libnotify>=0.7.1  udev  gtk2  exo>=0.6.0  libxfce4util>=4.8.1
                 libxfce4ui  libpng
Optional Deps  : gvfs: for trash support, mounting with udisk and remote
                 filesystems

                 xfce4-panel: for trash applet
                 tumbler: for thumbnail previews
                 thunar-volman: manages removable devices

gvfs+udev se confirme. wink

Dernière modification par The Uploader (Le 07/07/2011, à 18:37)


- Oldies PC : Intel Pentium 3 @ 800 Mhz sur CM ASUS P2B-F, GeForce 4 Ti4800 SE, Disque Dur Hitachi 160 Go, 512 Mo de RAM, 3DFX Voodoo 2, Sound Blaster 16 ISA PnP, Windows 98 SE / XP)
- Desktop : Intel Core i7 6700K @ 4 GHz sur CM ASUS Z170-P, GeForce GTX 1070, SSD Samsung 850 EVO 1 To, 16 Go de RAM, Disque Dur Seagate Barracuda 3 To, Windows 10

Hors ligne

#833 Le 07/07/2011, à 18:49

grim7reaper

Re : /* Topic des codeurs couche-tard [5] */

@ArkSeth : j'ai réussi à pondre vite fait (et à La Rache Ⓒ) ce code en Python.
Ça passe par dbus pour causer à udisk.

import dbus

bus = dbus.SystemBus()

udisk = bus.get_object("org.freedesktop.UDisks", "/org/freedesktop/UDisks")
udisk_interface = dbus.Interface(udisk, "org.freedesktop.UDisks")
device_path = udisk_interface.FindDeviceByDeviceFile("/dev/sdb1")
device = dbus.Interface(bus.get_object('org.freedesktop.UDisks', device_path), 'org.freedesktop.UDisks.Device')
device.FilesystemMount('', [])
device.FilesystemUnmount([])

Avec ça j'arrive à monter/démonter ma clef (qui est en /dev/sdb1 bien sûr).
Si ça te donnes des idées…

Si tu veux y'a la doc de l'API udev ici.
J'ai aussi regardé ça (même si c'est vieux, date de plus de 5 ans).

(no comment, please tongue, je sais que c'est moche mais c'est juste un PoC).


Édit : tiens j'ai trouvé un exemple qui me semble clair (et qui sera sûrement moins moche et plus complet que le mien).
C'est dans les sources de Calibre, y'a justement un fichier udisks.py.

Dernière modification par grim7reaper (Le 07/07/2011, à 18:55)

Hors ligne

#834 Le 07/07/2011, à 19:05

Elzen

Re : /* Topic des codeurs couche-tard [5] */

Bah en fait, j'me disais que j'allais juste faire os.system("udisks --mount /dev/sdaX")… mais c'est vrai que ta solution est peut-être quand même un peu plus propre ^^

(En plus, un test rapide sur ma clef à moi me sort un Not Authorized yikes)


Le fichier udisks.py a l'air pas mal, en effet. Mais pour l'instant, j'suis en train de me demander si je garde mon ancienne méthode de « détection » des disques (à savoir, surveiller les modifications sur /etc/mtab pour les montages/démontages, et pour les branchements/débranchements, relire périodiquement /proc/partitions dont j'peux pas surveiller la modification vu que c'est un fichier virtuel dont la date de dernière modif change tout le temps, et pour ces deux fichiers, effectuer un parsage assez cavalier), ou si c'est utile que je tente de chercher s'il y aurait un moyen un peu plus… naturel ?

Hors ligne

#835 Le 07/07/2011, à 19:24

Pylades

Re : /* Topic des codeurs couche-tard [5] */

Des fois, je me demande jusqu’où on peut se reposer sur le GC de Python… Quand je vois des fichiers qui ne sont pas fermés, j’ai des doutes.

En revanche, je me demande toujours si c’est utile de détruire les variable quand elles ne sont plus nécessaires. Est-ce que le GC le fait tout seul, ça ?


“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
                Linus Torvalds – 12 janvier 2003

Hors ligne

#836 Le 07/07/2011, à 19:40

grim7reaper

Re : /* Topic des codeurs couche-tard [5] */

ArkSeth a écrit :

Le fichier udisks.py a l'air pas mal, en effet. Mais pour l'instant, j'suis en train de me demander si je garde mon ancienne méthode de « détection » des disques (à savoir, surveiller les modifications sur /etc/mtab pour les montages/démontages, et pour les branchements/débranchements, relire périodiquement /proc/partitions dont j'peux pas surveiller la modification vu que c'est un fichier virtuel dont la date de dernière modif change tout le temps, et pour ces deux fichiers, effectuer un parsage assez cavalier), ou si c'est utile que je tente de chercher s'il y aurait un moyen un peu plus… naturel ?

Hum oui, c'est moche ça…
Je serais toi je chercherais un moyen plus propre.
Sachant que la commande

udisks --monitor

le fait, ça doit forcément être faisable via l'API de dbus.



Édit : tiens, avec ça je détecte les branchements/débranchements (pour le montage/demontage faut peut-être regarder du côté de DeviceChanged…)

import dbus
import gobject
from dbus.mainloop.glib import DBusGMainLoop

def handler(sender=None):
    print "Signal de %r" % sender

# Boucle evenementiel
DBusGMainLoop(set_as_default=True)
loop = gobject.MainLoop()

bus = dbus.SystemBus()
udisk = bus.get_object("org.freedesktop.UDisks", "/org/freedesktop/UDisks")
udisk_interface = dbus.Interface(udisk, "org.freedesktop.UDisks")
udisk_interface.connect_to_signal("DeviceAdded", handler)
udisk_interface.connect_to_signal("DeviceRemoved", handler)

loop.run()

(désolé si je fait mal aux yeux des python-user ^^").

Dernière modification par grim7reaper (Le 07/07/2011, à 22:12)

Hors ligne

#837 Le 07/07/2011, à 20:27

Elzen

Re : /* Topic des codeurs couche-tard [5] */

Boaf, ç'pas tellement pire que mon code à moi ^^

Bon, j'vais voir ça wink J'm'y remettrai un peu plus tard dans la soirée, là j'suis un peu occupé par autre chose.

Merci beaucoup, en tout cas big_smile

Hors ligne

#838 Le 07/07/2011, à 21:57

tshirtman

Re : /* Topic des codeurs couche-tard [5] */

Πυλάδης a écrit :

Des fois, je me demande jusqu’où on peut se reposer sur le GC de Python… Quand je vois des fichiers qui ne sont pas fermés, j’ai des doutes.

En revanche, je me demande toujours si c’est utile de détruire les variable quand elles ne sont plus nécessaires. Est-ce que le GC le fait tout seul, ça ?

heu, c'est à toi de le faire hein… sauf avec la syntaxe "with open…" il me semble, mais sinon toujours .close() sur ton fichier quand tu as finit de lire ou écrire dedans… (les gens qui ne le font pas sont des gros sales tongue)

@grim: indente de 4! rodjidjiou!

Dernière modification par tshirtman (Le 07/07/2011, à 22:01)

Hors ligne

#839 Le 07/07/2011, à 22:12

grim7reaper

Re : /* Topic des codeurs couche-tard [5] */

Fixed.
Mon copier/coller avait dû foirer.

Dernière modification par grim7reaper (Le 07/07/2011, à 22:13)

Hors ligne

#840 Le 08/07/2011, à 00:01

Elzen

Re : /* Topic des codeurs couche-tard [5] */

grim7reaper a écrit :

Édit : tiens, avec ça je détecte les branchements/débranchements (pour le montage/demontage faut peut-être regarder du côté de DeviceChanged…)

En effet, ça tourne bien, et c'est à première vue largement plus pratique que de relire /proc/partitions.

Et DeviceChanged réagit effectivement au montage/démontage.

Par contre, j'pense que pour le montage/démontage, je vais quand même conserver l'écoute de modification sur le fichier /etc/mtab, parce que d'une part, ça permet de connaître le point de montage, le cas échéant (il y a peut-être une option que je ne connais pas encore, mais avec un handler simple comme le tien, on ne voit que l'identifiant du disque), et d'autre part, parce que ça ne semble pas réagir au montage des systèmes de fichiers en réseau, genre par sshfs, et j'préférerais que mon truc les gère.

Et je vais quand même garder une lecture de /proc/partitions au lancement, pour connaître les disques déjà présents, vu qu'avec ça, je ne suis prévenu que lors des événements et pas sur l'état initial.

Donc finalement, on peut peut-être considérer que ça n'a pas changé grand chose… mais pour moi, c'est déjà un bon pas en avant.

Hors ligne

#841 Le 08/07/2011, à 01:11

HP

Re : /* Topic des codeurs couche-tard [5] */

grim7reaper a écrit :

C'est dans les sources de Calibre, y'a justement un fichier udisks.py.

Intéressant smile.


cat /dev/urandom >/dev/null 2>&1 #github

Hors ligne

#842 Le 08/07/2011, à 01:18

Кຼزດ

Re : /* Topic des codeurs couche-tard [5] */

Hop


dou

Hors ligne

#843 Le 08/07/2011, à 01:44

Pylades

Re : /* Topic des codeurs couche-tard [5] */

tshirtman a écrit :

heu, c'est à toi de le faire hein… sauf avec la syntaxe "with open…" il me semble, mais sinon toujours .close() sur ton fichier quand tu as finit de lire ou écrire dedans… (les gens qui ne le font pas sont des gros sales tongue)

Dans le fichier lié par grim7reaper, ils ne le font pas. Sinon, c’est quoi la syntaxe « with open » ?


Et pour la destruction de mes variables quand je ne les utilise plus, t’as pas répondu… tongue

Dernière modification par Πυλάδης (Le 08/07/2011, à 02:56)


“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
                Linus Torvalds – 12 janvier 2003

Hors ligne

#844 Le 08/07/2011, à 02:06

nesthib

Re : /* Topic des codeurs couche-tard [5] */

plop


GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

Hors ligne

#845 Le 08/07/2011, à 02:11

Sir Na Kraïou

Re : /* Topic des codeurs couche-tard [5] */

Æ


Descendant de Charlemagne et de LUCA.
Bleu, en l'hommage d'un truc bleu. :'(
C'est pas du bleu.
C'est pas le lac de Genève, c'est le Lac Léman.

Hors ligne

#846 Le 08/07/2011, à 02:14

samυncle

Re : /* Topic des codeurs couche-tard [5] */

.


Hello world

Hors ligne

#847 Le 08/07/2011, à 02:14

cm-t

Re : /* Topic des codeurs couche-tard [5] */

'Nuit;


Actu Ubuntu            ☺/
Pauses Ubuntu sur Paris            \_< -t
[(π)] La Quadrature du net

Hors ligne

#848 Le 08/07/2011, à 06:03

grim7reaper

Re : /* Topic des codeurs couche-tard [5] */

Hello World!



ArkSeth a écrit :

Par contre, j'pense que pour le montage/démontage, je vais quand même conserver l'écoute de modification sur le fichier /etc/mtab, parce que d'une part, ça permet de connaître le point de montage, le cas échéant (il y a peut-être une option que je ne connais pas encore, mais avec un handler simple comme le tien, on ne voit que l'identifiant du disque)

Y'a moyen de l'avoir ça, j'ai pas le temps de faire des tests là mais j'essayerai de poster un truc ce soir.

ArkSeth a écrit :

et d'autre part, parce que ça ne semble pas réagir au montage des systèmes de fichiers en réseau, genre par sshfs, et j'préférerais que mon truc les gère.

Ouais, je crois avoir vu un mec qui travaillait avec des trucs non détecté par udisks, mais ils s'en sortait en écoutant ailleurs avec dbus.
Faudrait que j'essaye de retrouver le lien…

ArkSeth a écrit :

Et je vais quand même garder une lecture de /proc/partitions au lancement, pour connaître les disques déjà présents, vu qu'avec ça, je ne suis prévenu que lors des événements et pas sur l'état initial.

Tu pourrais pas utiliser ça ?

Hors ligne

#849 Le 08/07/2011, à 06:42

Compteur du TdCCT

Re : /* Topic des codeurs couche-tard [5] */

Scores totaux, depuis le début :

1) 3713    nesthib
2) 3289    samuncle
3) 3174    Πυλάδης
4) 2376    Кຼزດ
5) 1844    cm-t
6) 1750+5  grim7reaper /* ./viewtopic.php?pid=3486252#p3486252 */
7) 1404    na kraïou
8) 866    helly
9) 862    \\Ouranos//
10) 690    tshirtman
11) 659    gnuuat
12) 565    Lagierl
13) 445    Rolinh
14) 418    nathéo
15) 388    The Uploader
16) 271    Kanor
17) 202    :!pakman
18) 196    Askelon
19) 121    ǤƦƯƝƬ
20) 99    kamui57
21) 93    petifrancais
22) 78    edge_one
22) 78    pierguiard
24) 70    gulp
25) 45    Le Rouge
26) 42    sakul
27) 37    ilagas
28) 36    xapantu
29) 30    keny
30) 26    gustare
30) 26    d10g3n
32) 25    GentooUser
32) 25    Morgiver
34) 24    ไ୦บเઢ'
34) 24    Steap
36) 20    CROWD
37) 18    Ph3nix_
38) 16    kouskous
39) 15    timsy
40) 12    stratoboy
40) 12    sailing
42) 11    alexises
42) 11    Crocoii
44) 10    Toineo
44) 10    NutMotion
44) 10    pseudovingtcinqcaracteres
44) 10    pfriedZ
44) 10    CasseTaTele
44) 10    Zeibux
44) 10    THS`
51) 8    Mornagest
52) 7    Vista
53) 6    ubuntlin
53) 6    asma.geek
53) 6    HP
56) 5    tendances-tdct
56) 5    kinouchou
58) 4    danychou56
58) 4    Neros
58) 4    Biaise
58) 4    totoflute
58) 4    pinballyoda ㋛
58) 4    NLS le pingouin
58) 4    ceric
58) 4    Dice-Man
58) 4    Pylade
67) 3    Revan26914
67) 3    raspouillas
67) 3    sweetly
70) 2    SoJaS
71) 1    geenux
71) 1    ArzhurBZH

RépartitionPosts/heure


Codez-vous trop tard le soir ?
Demandez au Compteur du TdCCT pour le savoir !

J’ai été généreusement codé par tshirtman ; d’ailleurs, voici mon code source. TdCCT CEP : ./viewtopic.php?pid=3493579#p3493579 (p3492608).

Hors ligne

#850 Le 08/07/2011, à 06:42

Compteur du TdCCT

Re : /* Topic des codeurs couche-tard [5] */

Scores de la période en cours :

1) 70    nesthib
2) 59    Πυλάδης
3) 58    samuncle
4) 49    Кຼزດ
5) 45    cm-t
6) 43    tshirtman
7) 24    na kraïou
8) 17    grim7reaper
9) 6    HP
10) 5    Rolinh
11) 3    The Uploader

Codez-vous trop tard le soir ?
Demandez au Compteur du TdCCT pour le savoir !

J’ai été généreusement codé par tshirtman ; d’ailleurs, voici mon code source. TdCCT CEP : ./viewtopic.php?pid=3493579#p3493579 (p3492608).

Hors ligne