#!/usr/bin/python

import pprint, sys, time
import dbus, flimflam

if (len(sys.argv) < 2):
    print "Usage: %s <service_name>" % (sys.argv[0])
    sys.exit(1)

flim = flimflam.FlimFlam(dbus.SystemBus())

timeout = time.time() + 30
while time.time() < timeout:
    service = flim.FindElementByPropertySubstring('Service',
                                                  'Name',
                                                  sys.argv[1])
    if service:
        break
    time.sleep(.5)

if service is None:
    print "Unknown service %s" % sys.argv[1]
    sys.exit(2)

(success, diagnostics) = flim.ConnectService(service=service)

print 'Success:', success
pprint.pprint(diagnostics)
