opengeodb and ldap detaillers work!
[auerswald-callnotifier.git] / src / callnotifier / CLI.php
index c8c85736b81aed40d80b4a724c87414a1c889960..16c95b0f6f6ea5845634632929ba0cf7eab9fc7b 100644 (file)
@@ -23,8 +23,38 @@ class CLI
 
         $this->fillConfig($this->config, $result);
 
-        $handler = new MessageHandler($this->config);
-        $handler->addLogger(new Logger_Debug(), '*');
+        $log = new Log();
+        if ($result->options['debug'] || $result->options['debugEdss1']) {
+            $debugLogger = new Logger_Debug();
+            $log->addLogger($debugLogger, '*');
+            if ($result->options['debugEdss1']) {
+                $debugLogger->edss1MsgOnly = true;
+            }
+        }
+        $log->addLogger(
+            new Logger_CallEcho(), array('startingCall', 'finishedCall')
+        );
+
+        $callMonitor = new CallMonitor($this->config, $log);
+        $callMonitor->addDetailler(
+            new CallMonitor_Detailler_LDAP(
+                array(
+                    'host' => 'ldap.home.cweiske.de',
+                    'basedn' => 'ou=adressbuch,dc=cweiske,dc=de',
+                    'binddn' => 'cn=readonly,ou=users,dc=cweiske,dc=de',
+                    'bindpw' => 'readonly'
+                )
+            )
+        );
+        $callMonitor->addDetailler(
+            new CallMonitor_Detailler_OpenGeoDb(
+                'mysql:host=dojo;dbname=opengeodb',
+                'opengeodb-read',
+                'opengeodb'
+            )
+        );
+
+        $handler = new MessageHandler($this->config, $log, $callMonitor);
 
         if ($this->config->replayFile !== null) {
             $sourceClass = 'callnotifier\Source_File';
@@ -71,6 +101,25 @@ class CLI
             )
         );
 
+        $p->addOption(
+            'debug',
+            array(
+                'short_name'  => '-d',
+                'long_name'   => '--debug',
+                'description' => "Debug mode: Echo all received messages and events",
+                'action'      => 'StoreTrue'
+            )
+        );
+        $p->addOption(
+            'debugEdss1',
+            array(
+                'short_name'  => '-e',
+                'long_name'   => '--debug-edss1',
+                'description' => "Debug mode: Show EDSS1 messages only",
+                'action'      => 'StoreTrue'
+            )
+        );
+
         $this->cliParser = $p;
     }