Translation update done using Pootle.
[wammu.git] / wammu.py
blob7e4fdf0a22659417cec6e277e117fb9f102eede6
1 #!/usr/bin/env python
2 # -*- coding: UTF-8 -*-
3 # vim: expandtab sw=4 ts=4 sts=4:
4 '''
5 Wammu - Phone manager
6 Execution script
7 '''
8 __author__ = 'Michal Čihař'
9 __email__ = 'michal@cihar.com'
10 __license__ = '''
11 Copyright © 2003 - 2010 Michal Čihař
13 This program is free software; you can redistribute it and/or modify it
14 under the terms of the GNU General Public License version 2 as published by
15 the Free Software Foundation.
17 This program is distributed in the hope that it will be useful, but WITHOUT
18 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
19 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
20 more details.
22 You should have received a copy of the GNU General Public License along with
23 this program; if not, write to the Free Software Foundation, Inc.,
24 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
25 '''
27 import os
28 import sys
29 import getopt
30 import Wammu
31 import Wammu.Locales
33 # Try to import iconv_codec to allow working on chinese windows
34 try:
35 import iconv_codec
36 except ImportError:
37 pass
39 # Disable warning about missing files
40 # This can be caused by attempt to import Python modules, which don't
41 # have all DLLs satisfied.
42 if sys.platform.startswith('win'):
43 import win32api
44 import win32con
45 win32api.SetErrorMode(win32con.SEM_NOOPENFILEERRORBOX)
47 def version():
48 '''
49 Displays version information.
50 '''
51 print _('Wammu - Windowed Gammu version %s') % Wammu.__version__
53 def usage():
54 '''
55 Shows program usage.
56 '''
57 version()
58 print _('Usage: %s [OPTION...]' % os.path.basename(__file__))
59 print
60 print _('Options:')
61 print '%-20s ... %s' % (
62 '-h/--help',
63 _('show this help'))
64 print '%-20s ... %s' % (
65 '-v/--version',
66 _('show program version'))
67 print '%-20s ... %s' % (
68 '-l/--local-locales',
69 _('force using of locales from current directory rather than system ones'))
70 print '%-20s ... %s' % (
71 '-i/--info',
72 _('prints connection settings and tries to connect the phone'))
73 print '%-20s ... %s' % (
74 '-d/--debug',
75 _('enables debug output to stderr'))
76 print
78 def info():
79 '''
80 Displays configuration summary and tries to connect to phone.
81 '''
82 import Wammu.WammuSettings
83 import Wammu.Utils
84 import gammu
86 settings = Wammu.WammuSettings.WammuConfig()
87 section = settings.ReadInt('/Gammu/Section')
88 config = settings.gammu.GetConfig(section)
89 if config['Connection'] == '' or config['Device'] == '':
90 print _('Wammu is not configured!')
92 cfg = {
93 'StartInfo': settings.ReadBool('/Gammu/StartInfo'),
94 'UseGlobalDebugFile': True,
95 'DebugFile': None, # Set on other place
96 'SyncTime': settings.ReadBool('/Gammu/SyncTime'),
97 'Connection': config['Connection'],
98 'LockDevice': settings.ReadBool('/Gammu/LockDevice'),
99 'DebugLevel': 'textalldate', # Set on other place
100 'Device': config['Device'],
101 'Model': config['Model'],
104 # Compatibility with old Gammu versions
105 cfg = Wammu.Utils.CompatConfig(cfg)
107 print _('Wammu configuration:')
108 print '%-15s: %s' % (_('Connection'), cfg['Connection'])
109 print '%-15s: %s' % (_('Model'), cfg['Model'])
110 print '%-15s: %s' % (_('Device'), cfg['Device'])
111 print _('Connecting...')
112 if Wammu.debug:
113 gammu.SetDebugFile(sys.stderr)
114 gammu.SetDebugLevel('textalldate')
115 sm = gammu.StateMachine()
116 sm.SetConfig(0, cfg)
117 sm.Init()
118 print _('Getting phone information...')
119 Manufacturer = sm.GetManufacturer()
120 Model = sm.GetModel()
121 IMEI = sm.GetIMEI()
122 Firmware = sm.GetFirmware()
123 print _('Phone infomation:')
124 print '%-15s: %s' % (_('Manufacturer'), Manufacturer)
125 print '%-15s: %s (%s)' % (_('Model'), Model[0], Model[1])
126 print '%-15s: %s' % (_('IMEI'), IMEI)
127 print '%-15s: %s' % (_('Firmware'), Firmware[0])
129 def parse_options():
131 Processes program options.
133 try:
134 opts, args = getopt.getopt(sys.argv[1:],
135 'hvlid',
136 ['help', 'version', 'local-locales', 'info', 'debug'])
137 except getopt.GetoptError, val:
138 usage()
139 print _('Command line parsing failed with error:')
140 print val
141 sys.exit(2)
143 if len(args) != 0:
144 usage()
145 print _('Extra unrecognized parameters passed to program')
146 sys.exit(3)
148 do_info = False
150 for opt, dummy in opts:
151 if opt in ('-l', '--local-locales'):
152 Wammu.Locales.UseLocal()
153 print _('Using local built locales!')
154 if opt in ('-h', '--help'):
155 usage()
156 sys.exit()
157 if opt in ('-v', '--version'):
158 version()
159 sys.exit()
160 if opt in ('-i', '--info'):
161 do_info = True
162 if opt in ('-d', '--debug'):
163 Wammu.debug = True
165 if do_info:
166 info()
167 sys.exit()
169 if __name__ == '__main__':
170 Wammu.Locales.Init()
171 parse_options()
172 # need to be imported after locales are initialised
173 import Wammu.App
174 Wammu.App.Run()