#!/usr/bin/python

import dbus, flimflam, sys

if (len(sys.argv) < 2):
    print "Usage: %s <device | interface>" % (sys.argv[0])
    sys.exit(1)

(_, name) = sys.argv

flim = flimflam.FlimFlam(dbus.SystemBus())

device = flim.FindElementByNameSubstring('Device', name)
if device is None:
    device = flim.FindElementByPropertySubstring('Device', 'Interface', name)
if device is None:
    print "No such device or interface %s" % name
    sys.exit(1)

properties = device.GetProperties(utf8_strings = True)
for path in properties["IPConfigs"]:
    ipconfig = flim.GetObjectInterface("IPConfig", path)
    ipconfig_properties = ipconfig.GetProperties(utf8_strings = True)

    print "[ %s ]" % (ipconfig.object_path)

    for key in ipconfig_properties.keys():
        print "        %s = %s" % \
            (key, flimflam.convert_dbus_value(ipconfig_properties[key], 8))

print