fso-auth.py: quit the loop after network registration
[fso-scripts.git] / fso-auth.py
1 #!/usr/bin/env python
2
3 import sys
4 import dbus
5 import gobject
6
7 from dbus.mainloop.glib import DBusGMainLoop
8 DBusGMainLoop(set_as_default=True)
9
10 pin = ''
11 gsm_device_iface = None
12 loop = gobject.MainLoop()
13
14 def onDeviceStatus(status):
15     print "DeviceStatus:", status
16     if status == "alive-sim-locked":
17         gsm_device_iface.SetFunctionality("full", True, pin)
18     elif status == "alive-sim-ready":
19         pass
20     elif status == "alive-registered":
21         loop.quit()
22         
23 def fso_auth():
24     global gsm_device_iface
25     global gsm_sim_iface
26
27     bus = dbus.SystemBus()
28
29     usage_obj = bus.get_object("org.freesmartphone.ousaged", "/org/freesmartphone/Usage")
30     usage_iface = dbus.Interface(usage_obj, "org.freesmartphone.Usage")
31
32     gsm_device_obj = bus.get_object("org.freesmartphone.ogsmd", "/org/freesmartphone/GSM/Device")
33     gsm_device_iface = dbus.Interface(gsm_device_obj, "org.freesmartphone.GSM.Device")
34
35     gsm_device_iface.connect_to_signal('DeviceStatus', onDeviceStatus)
36
37     usage_iface.RequestResource("GSM")
38
39     print "starting the main loop"
40     try:
41         loop.run()
42     except KeyboardInterrupt:
43         print "Interrupted"
44         loop.quit()
45
46     gsm_device_iface.SetFunctionality("minimal", True, "")
47     usage_iface.ReleaseResource("GSM")
48
49 if __name__ == "__main__":
50
51     if len(sys.argv) != 2:
52         sys.stderr.write("usage: %s <pin>\n")
53         sys.exit(1)
54
55     pin = sys.argv[1]
56     fso_auth()