#!/usr/bin/python

import flimflam, sys

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

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

flim = flimflam.FlimFlam()
profile = flim.FindElementByNameSubstring('Profile', name)
profile.SetProperty(property_key, value)
