From: Konstantin Stepanov Date: Tue, 21 Dec 2010 21:38:46 +0000 (+0200) Subject: migrate-dbus-scripts.py X-Git-Tag: v1.5.0~13 X-Git-Url: http://vcs.maemo.org/git/?p=dbuscron;a=commitdiff_plain;h=7540ecc877317ba6a2a7d7b2003bc4af996c240d migrate-dbus-scripts.py --- diff --git a/migrate-dbus-scripts.py b/migrate-dbus-scripts.py new file mode 100755 index 0000000..b543c5a --- /dev/null +++ b/migrate-dbus-scripts.py @@ -0,0 +1,55 @@ +#!/usr/bin/python +from __future__ import with_statement +import os, sys + +if '-h' in sys.argv or '--help' in sys.argv: + print ''' +%(name)s [ dbus-scripts-dir ] [ dbuscrontab-dir ] + + Convert all files from dbus-scripts-dir from + dbus-scripts config format to dbuscron config + format and put them under the same names into + dbuscrontab-dir. + + If omitted, dbus-scripts-dir defaults to + `/etc/dbus-scripts.d', dbuscrontab-dir + defaults to `/etc/dbuscrontab.d'. +''' % dict(name=sys.argv[0]) + os._exit(0) + +try: + dbus_scripts_dir = sys.argv[1] +except IndexError: + dbus_scripts_dir = '/etc/dbus-scripts.d' + +try: + dbuscron_dir = sys.argv[2] +except IndexError: + dbuscron_dir = '/etc/dbuscrontab.d' + +for fn in os.listdir(dbus_scripts_dir): + fnam = os.path.join(dbus_scripts_dir, fn) + if not os.path.isfile(fnam): + continue + + fout = os.path.join(dbuscron_dir, fn) + + with open(fnam, 'rb') as f: + with open(fout, 'wb') as o: + for line in f: + line = line.strip() + if not line or line.startswith('#'): + continue + + cmd, src, dest, iface, meth, args = line.split(' ', 5) + args = args.replace(' ',';') + opts = dict( + cmd=cmd, + src=src, + dest=dest, + iface=iface, + meth=meth, + args=args) + # bus type sender interface path member destination args command + print >> o, 'S signal,method_call %(src)s %(iface)s * %(meth)s %(dest)s %(args)s %(cmd)s' % opts +