blob: fa7589b1d99ed505a93dc3228637843ad9ea0fbe [file] [log] [blame]
#!/usr/bin/python
import dbus, flimflam, sys
flim = flimflam.FlimFlam(dbus.SystemBus())
if len(sys.argv) < 2:
print "Usage: %s <command>" % (sys.argv[0])
print " create <profile>"
print " list"
print " name <profile> [name]"
print " pop [<profile>]"
print " push <profile>"
print " remove <profile>"
print ""
print "where <profile> is of the form ident or ~user/ident"
print "(beware that ~user may need shell quoting)"
sys.exit(1)
def print_profiles():
active = flim.GetActiveProfile()
for a_profile in flim.GetObjectList("Profile"):
if a_profile.object_path == active.object_path:
isactive = "*"
else:
isactive = " "
# TODO(sleffler) handler ~user paths
identifier = a_profile.object_path[
a_profile.object_path.rfind("/") + 1:]
profile_properties = a_profile.GetProperties(utf8_strings = True)
name = profile_properties.get("Name", "<unnamed>")
print "%s %-12s %s" % (isactive, identifier, name)
if sys.argv[1] in ["list", "show"]:
print_profiles()
elif sys.argv[1] in ["name"]:
if (len(sys.argv) < 3):
print "Need at least profile parameter"
sys.exit(1)
profile = flim.FindElementByNameSubstring('Profile', sys.argv[2])
if (len(sys.argv) > 3):
profile.SetProperty("Name", sys.argv[3])
else:
properties = profile.GetProperties(utf8_strings = True)
print "%s" % properties.get("Name", "<unnamed>")
elif sys.argv[1] in ["create"]:
if (len(sys.argv) < 3):
print "Profile identifier required"
sys.exit(1)
flim = flimflam.FlimFlam(dbus.SystemBus())
profile = flim.CreateProfile(sys.argv[2])
print "Created profile %s" % (profile.object_path)
elif sys.argv[1] in ["remove"]:
if (len(sys.argv) < 3):
print "Profile identifier required"
sys.exit(1)
flim = flimflam.FlimFlam(dbus.SystemBus())
flim.RemoveProfile(sys.argv[2])
print "Removed profile %s" % (sys.argv[2])
elif sys.argv[1] in ["push"]:
if (len(sys.argv) < 3):
print "Profile identifier required"
sys.exit(1)
flim = flimflam.FlimFlam(dbus.SystemBus())
profile = flim.PushProfile(sys.argv[2])
print "Pushed profile %s" % (profile.object_path)
elif sys.argv[1] in ["pop"]:
if (len(sys.argv) == 3):
flim.PopProfile(sys.argv[2])
else:
flim.PopAnyProfile()
else:
print "Unknown command"