Skip to content

Instantly share code, notes, and snippets.

@tribalchicken
Created September 22, 2016 03:55
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tribalchicken/b6f4c61393ab6a6f93f4df9e4717aecb to your computer and use it in GitHub Desktop.
Save tribalchicken/b6f4c61393ab6a6f93f4df9e4717aecb to your computer and use it in GitHub Desktop.
def askUdisks2():
"""
Ask udisks2 via D-Bus for the mount point of the first automounted usb device.
"""
bus = dbus.SystemBus()
udisks2obj = bus.get_object('org.freedesktop.UDisks2', '/org/freedesktop/UDisks2')
udisks2om = dbus.Interface(udisks2obj, 'org.freedesktop.DBus.ObjectManager')
udisks2 = udisks2om.GetManagedObjects()
def findBlockDevice(drive,objects):
for k in objects.keys():
# try:
if 'org.freedesktop.UDisks2.Block' in [str(x) for x in objects[k].keys()]:
if drive in objects[k]['org.freedesktop.UDisks2.Block']['Drive']:
if "filesystem" in objects[k]['org.freedesktop.UDisks2.Block']['IdUsage']:
return k
def findUsbMount(objects):
for k in objects.keys():
# try:
if 'org.freedesktop.UDisks2.Drive' in [str(x) for x in objects[k].keys()]:
print(objects[k]['org.freedesktop.UDisks2.Drive']['ConnectionBus'])
if 'usb' in objects[k]['org.freedesktop.UDisks2.Drive']['ConnectionBus']:
fs = dbus.Interface(bus.get_object('org.freedesktop.UDisks2', findBlockDevice(k,udisks2)), 'org.freedesktop.UDisks2.Filesystem')
fsprop = dbus.Interface(fs, 'org.freedesktop.DBus.Properties')
for m in fsprop.Get('org.freedesktop.UDisks2.Filesystem', 'MountPoints'):
return ''.join([chr(x) for x in m if x])
# except:
# pass
def findPartitionDevice(partition, objects):
table = objects[partition]['org.freedesktop.UDisks2.Partition']['Table']
blockdev = objects[table]['org.freedesktop.UDisks2.Block']['Device']
return ''.join([chr(x) for x in blockdev if x])
return findUsbMount(udisks2)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment