#!/usr/bin/python

import dbus, flimflam, sys

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

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

flim = flimflam.FlimFlam()
device = flim.FindElementByNameSubstring('Device', name)
if property_key in ["BgscanShortInterval", "RoamThreshold", "ScanInterval" ]:
    device.SetProperty(property_key, dbus.UInt16(value))
elif property_key in [ "BgscanSignalThreshold", ]:
    device.SetProperty(property_key, dbus.Int32(value))
elif property_key in ["Cellular.AllowRoaming", "Powered"]:
    device.SetProperty(property_key,
                       dbus.Boolean(value.lower() in ("true", "1")))
else:
    device.SetProperty(property_key, value)