2 from __future__ import with_statement
5 if '-h' in sys.argv or '--help' in sys.argv:
7 %(name)s [ dbus-scripts-dir ] [ dbuscrontab-dir ]
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
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])
21 dbus_scripts_dir = sys.argv[1]
23 dbus_scripts_dir = '/etc/dbus-scripts.d'
26 dbuscron_dir = sys.argv[2]
28 dbuscron_dir = '/etc/dbuscrontab.d'
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):
35 fout = os.path.join(dbuscron_dir, fn)
36 print '%s -> %s' % (fnam, fout)
39 with open(fnam, 'rb') as f:
41 with open(fout, 'wb') as o:
44 if not line or line.startswith('#'):
48 parts = line.split(' ', 5)
50 for i, n in enumerate(('cmd', 'src', 'dest', 'iface', 'meth', 'args')):
56 opts['args'] = opts['args'].replace(' ', ';')
58 while opts['args'].startswith('*;'):
59 opts['args'] = opts['args'][2:]
61 opts['args'] = ';'*skip_args + opts['args']
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