run dbuscron as user
[dbuscron] / dbuscron.py
index 89d3130..a5391e8 100755 (executable)
@@ -5,72 +5,14 @@
 # Examples for N900:
 #
 # Headphones unplugged:
-# S signal * org.freedesktop.Hal.Manager /org/freedesktop/Hal/Manager DeviceRemoved * * echo Headphones unplugged;
+# S signal * org.freedesktop.Hal.Device /org/freedesktop/Hal/devices/platform_headphone Condition * ButtonPressed;connection echo Headphones state changed: $(cat /sys/devices/platform/gpio-switch/headphone/state)
 #
 # Call recieved:
 # S signal * com.nokia.csd.Call /com/nokia/csd/call Coming * * echo $DBUS_ARG1 is calling
 #
 
-import sys
-
-if __name__ == '__main__':
-
-    from dbuscron import Logger, OptionsParser
-
-    options = OptionsParser(
-            daemon=dict(names=('-f', '--nodaemon'), action='store_false', default=True),
-            quiet=dict(names=('--quiet', '-q'), action='count', default=0),
-            verbose=dict(names=('--verbose', '-v'), action='count', default=0),
-            config=dict(names=('--conf', '--config', '-c'), default='/etc/dbuscrontab'),
-            logfile=dict(names=('--log', '--logfile', '-l')))
-
-    logout = sys.stderr
-    if options.logfile:
-        logout = open(options.logfile, 'wb')
-
-    log = Logger(__name__, out=logout)
-    log.level = options.verbose - options.quiet + Logger.WARNING
-
-    if options.daemon:
-        from dbuscron.daemonize import daemonize
-        daemonize(
-            pidfile='/var/run/dbuscron.pid',
-            logfile='/var/log/dbuscron.log'
-            )
-
-    from dbuscron import DbusBus, DbusRule, Command, Commands, CrontabParser
-
-    bus = DbusBus()
-    commands = Commands()
-
-    crontab = CrontabParser(options.config)
-
-    def load_config(parser):
-        for rule, cmd in parser:
-            matcher = DbusRule(**rule)
-            command = Command(cmd)
-            matcher.register()
-            log.info('%s %s' % (matcher, command))
-            commands.add(matcher, command)
-
-    load_config(crontab)
-
-    def reload_config_on_signal(sig_no, stack):
-        log.info('Signal #%d received: reloading config...' % (sig_no))
-        commands.clear()
-        load_config(crontab)
-        log.info('Done config reloading.')
-
-    import signal
-    signal.signal(signal.SIGHUP, reload_config_on_signal)
-
-    commands.environ = crontab.environ
-    bus.attach_handler(commands.handler)
-
-    try:
-        bus.listen()
-    except KeyboardInterrupt:
-        sys.exit(2)
+from dbuscron.shell import main
+main.run()
 
 # vim: ts=8 sts=4 sw=4 et