#!/usr/bin/python

import dbus, flimflam, sys

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

(_, address) = sys.argv

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

for device in flim.GetObjectList("Device"):
    device_properties = device.GetProperties(utf8_strings = True)

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

        if ipconfig_properties["Method"] not in ["ipv4","ipv6"]:
            print "Skip %s; method %s" % (ipconfig.object_path,
                ipconfig_properties["Method"])
            continue

        ipconfig.SetProperty("Address", address)