debug option for mail renderer
authorChristian Weiske <cweiske@cweiske.de>
Fri, 17 Jun 2016 19:27:16 +0000 (21:27 +0200)
committerChristian Weiske <cweiske@cweiske.de>
Fri, 17 Jun 2016 19:27:16 +0000 (21:27 +0200)
src/bdrem/Config.php
src/bdrem/Renderer/Mail.php
src/bdrem/UserInterface.php

index f586ed3..693307e 100644 (file)
@@ -45,6 +45,12 @@ class Config
     public $daysNext;
 
     /**
+     * Development helper
+     * @var boolean
+     */
+    public $debug;
+
+    /**
      * Locale to render the dates in, e.g. "de_DE.UTF-8"
      * @var string
      */
index bc7e220..d7aef3e 100644 (file)
@@ -75,11 +75,18 @@ class Renderer_Mail extends Renderer
         $hdrs = $mime->headers($hdrs);
         $textHeaders = '';
         foreach ($hdrs as $k => $v) {
-            $textHeaders .= $k . ':' . $v  . "\n";
+            $textHeaders .= $k . ': ' . $v  . "\n";
         }
 
-        foreach ((array) $this->config->get('mail_to') as $recipient) {
-            mail($recipient, $subject, $body, $textHeaders);
+        if (!$this->config->get('debug', false)) {
+            foreach ((array) $this->config->get('mail_to') as $recipient) {
+                mail($recipient, $subject, $body, $textHeaders);
+            }
+        } else {
+            echo "Subject: " . $subject . "\n";
+            echo $textHeaders;
+            echo "\n";
+            echo $body;
         }
     }
 
index b0b21cc..8a25bf4 100644 (file)
@@ -149,6 +149,14 @@ abstract class UserInterface
                 'action'      => 'StoreString'
             )
         );
+        $parser->addOption(
+            'debug',
+            array(
+                'long_name'   => '--debug',
+                'description' => 'Development helper (mail)',
+                'action'      => 'StoreTrue'
+            )
+        );
 
         return $parser;
     }
@@ -171,6 +179,7 @@ abstract class UserInterface
 
             $this->config->daysNext    = $result->options['daysNext'];
             $this->config->daysPrev    = $result->options['daysPrev'];
+            $this->config->debug       = $result->options['debug'];
             $this->config->renderer    = $result->options['renderer'];
             $this->config->stopOnEmpty = $result->options['stopOnEmpty'];
             $this->config->setDate($result->options['date']);