Revert "Makefile: set architecture to build to armel"
[dbuscron] / migrate-dbus-scripts.py
1 #!/usr/bin/python
2 from __future__ import with_statement
3 import os, sys
4
5 if '-h' in sys.argv or '--help' in sys.argv:
6     print '''
7 %(name)s [ dbus-scripts-dir ] [ dbuscrontab-dir ]
8
9     Convert all files from dbus-scripts-dir from
10     dbus-scripts config format to dbuscron config
11     format and put them under the same names into
12     dbuscrontab-dir.
13
14     If omitted, dbus-scripts-dir defaults to
15     `/etc/dbus-scripts.d', dbuscrontab-dir
16     defaults to `/etc/dbuscrontab.d'.
17 ''' % dict(name=sys.argv[0])
18     os._exit(0)
19
20 try:
21     dbus_scripts_dir = sys.argv[1]
22 except IndexError:
23     dbus_scripts_dir = '/etc/dbus-scripts.d'
24
25 try:
26     dbuscron_dir = sys.argv[2]
27 except IndexError:
28     dbuscron_dir = '/etc/dbuscrontab.d'
29
30 for fn in os.listdir(dbus_scripts_dir):
31     fnam = os.path.join(dbus_scripts_dir, fn)
32     if not os.path.isfile(fnam):
33         continue
34
35     fout = os.path.join(dbuscron_dir, fn)
36     print '%s -> %s' % (fnam, fout)
37
38     lineno = 0
39     with open(fnam, 'rb') as f:
40         lineno += 1
41         with open(fout, 'wb') as o:
42             for line in f:
43                 line = line.strip()
44                 if not line or line.startswith('#'):
45                     print >> o, line
46                     continue
47
48                 parts = line.split(' ', 5)
49                 opts = dict()
50                 for i, n in enumerate(('cmd', 'src', 'dest', 'iface', 'meth', 'args')):
51                     try:
52                         opts[n] = parts[i]
53                     except IndexError:
54                         opts[n] = '*'
55
56                 opts['args'] = opts['args'].replace(' ', ';')
57                 skip_args = 0
58                 while opts['args'].startswith('*;'):
59                     opts['args'] = opts['args'][2:]
60                     skip_args += 1
61                 opts['args'] = ';'*skip_args + opts['args']
62
63                 # bus type sender interface path member destination args command
64                 res = 'S signal,method_call %(src)s %(iface)s * %(meth)s %(dest)s %(args)s !%(cmd)s' % opts
65                 print >> o, res
66