75 lines
2.5 KiB
Python
Executable file
75 lines
2.5 KiB
Python
Executable file
#!/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))
|