#!/usr/bin/python import dbus def print_sub_properties(key, value): if key == "Profiles": interface = "org.chromium.flimflam.Profile" elif key == "Devices": interface = "org.chromium.flimflam.Device" elif key == "Services": interface = "org.chromium.flimflam.Service" else: return print "%s" % (key) for path in value: print " %s" % (path) obj = dbus.Interface(bus.get_object("org.chromium.flimflam", path), interface) properties = obj.GetProperties(utf8_strings = True) for key in properties.keys(): if key in ["Networks", "Services"]: continue if key in ["Powered", "Scanning", "Connected", "Available", "Remember", "Default"]: if properties[key] == dbus.Boolean(1): val = "true" else: val = "false" elif key in ["Strength", "Priority"]: val = int(properties[key]) else: val = str(properties[key]) print " %s = %s" % (key, val) if "Services" in properties.keys(): remove_prefix = lambda x: x[x.rfind("/") + 1] services = [" ".join( map(remove_prefix, map(str, properties["Services"])))] print " Services = [ %s]" % (services) def print_properties(properties): for key in properties.keys(): if key in ["Profiles", "Devices", "Services"]: print_sub_properties(key, properties[key]) elif key in ["AvailableTechnologies", "EnabledTechnologies", "ConnectedTechnologies"]: print "%s" % (key) print " [ %s]" % (" ".join(properties[key])) elif key in ["OfflineMode"]: print "%s" % (key) if properties[key] == dbus.Boolean(1): print " true" else: print " false" elif key in ["DefaultTechnology"]: print "%s" % (key) if properties[key] == "": print " <none>" else: print " %s" % (properties[key]) else: print "%s" % (key) print " %s" % (properties[key]) bus = dbus.SystemBus() manager = dbus.Interface(bus.get_object("org.chromium.flimflam", "/"), "org.chromium.flimflam.Manager") print_properties(manager.GetProperties(utf8_strings = True))