#!/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", "ScanInterval" ]:
    device.SetProperty(property_key, dbus.Int16(value))
elif property_key in [ "BgscanSignalThreshold", ]:
    device.SetProperty(property_key, int(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)
