#!/usr/bin/python

import dbus
import flimflam
import sys

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

print "Attempting to configure service %s" % (sys.argv[1])

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

params = { "GUID" : sys.argv[1] }
argv = sys.argv[2:]
while argv:
    property_key = argv[0]
    value = argv[1]
    if property_key in ["Priority"]:
        params[property_key] = int(value)
    elif property_key in ["AutoConnect", "WiFi.HiddenSSID", "EAP.UseSystemCAS",
      "SaveCredentials"]:
        params[property_key] = dbus.Boolean(value.lower() in ("true", "1"))
    else:
        params[property_key] = value

    argv = argv[2:]

service = flim.GetService(params)
properties = service.GetProperties(utf8_strings = True)

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

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

print