#!/usr/bin/python

import dbus, flimflam, sys

if (len(sys.argv) < 4):
    print "Usage: %s <service-name> <property> <value>" % (sys.argv[0])
    sys.exit(1)

(_, name, property_key, value) = sys.argv

flim = flimflam.FlimFlam()
service = flim.FindElementByPropertySubstring('Service', 'Name', name)

if not service:
    print "Could not find service: %s" % (sys.argv[1])
    sys.exit(1)

if property_key in ["Priority"]:
    service.SetProperty(property_key, int(value))
elif property_key in ["AutoConnect", "WiFi.HiddenSSID", "EAP.UseSystemCAs",
  "SaveCredentials", "LinkMonitorDisable", "ManagedCredentials"]:
    service.SetProperty(property_key,
                        dbus.Boolean(value.lower() in ("true", "1")))
else:
    service.SetProperty(property_key, value)