From 91a449138eaf4d029775479dd0df02d8ad94cdf2 Mon Sep 17 00:00:00 2001
From: Thomas Bruederli <thomas@roundcube.net>
Date: Tue, 23 Sep 2014 11:38:03 -0400
Subject: [PATCH] Add output class for commandline scripts

---
 program/include/rcmail_output_cli.php |   89 ++++++++++++++++++++++++++++++++++++++++++++
 program/include/clisetup.php          |    5 ++
 2 files changed, 93 insertions(+), 1 deletions(-)

diff --git a/program/include/clisetup.php b/program/include/clisetup.php
index 47a4071..76afde9 100644
--- a/program/include/clisetup.php
+++ b/program/include/clisetup.php
@@ -5,7 +5,7 @@
  | program/include/clisetup.php                                          |
  |                                                                       |
  | This file is part of the Roundcube Webmail client                     |
- | Copyright (C) 2010-2012, The Roundcube Dev Team                       |
+ | Copyright (C) 2010-2014, The Roundcube Dev Team                       |
  |                                                                       |
  | Licensed under the GNU General Public License version 3 or            |
  | any later version with exceptions for skins & plugins.                |
@@ -27,3 +27,6 @@
 
 // Unset max. execution time limit, set to 120 seconds in iniset.php
 @set_time_limit(0);
+
+$rcmail = rcmail::get_instance();
+$rcmail->output = new rcmail_output_cli();
diff --git a/program/include/rcmail_output_cli.php b/program/include/rcmail_output_cli.php
new file mode 100644
index 0000000..c8a9688
--- /dev/null
+++ b/program/include/rcmail_output_cli.php
@@ -0,0 +1,89 @@
+<?php
+
+/*
+ +-----------------------------------------------------------------------+
+ | program/include/rcmail_output_cli.php                                 |
+ |                                                                       |
+ | This file is part of the Roundcube PHP suite                          |
+ | Copyright (C) 2005-2014 The Roundcube Dev Team                        |
+ |                                                                       |
+ | Licensed under the GNU General Public License version 3 or            |
+ | any later version with exceptions for skins & plugins.                |
+ | See the README file for a full license statement.                     |
+ | CONTENTS:                                                             |
+ |   Abstract class for output generation                                |
+ |                                                                       |
+ +-----------------------------------------------------------------------+
+ | Author: Thomas Bruederli <roundcube@gmail.com>                        |
+ +-----------------------------------------------------------------------+
+*/
+
+/**
+ * Class for output generation
+ *
+ * @package Webmail
+ * @subpackage View
+ */
+class rcmail_output_cli extends rcmail_output
+{
+    public $type = 'cli';
+
+    /**
+     * Object constructor
+     */
+    public function __construct($task = null, $framed = false)
+    {
+        parent::__construct();
+    }
+
+    /**
+     * Call a client method
+     *
+     * @see rcube_output::command()
+     */
+    function command()
+    {
+        // NOP
+    }
+
+    /**
+     * Add a localized label to the client environment
+     */
+    function add_label()
+    {
+        // NOP
+    }
+
+    /**
+     * Invoke display_message command
+     *
+     * @see rcube_output::show_message()
+     */
+    function show_message($message, $type = 'notice', $vars = null, $override = true, $timeout = 0)
+    {
+        if ($this->app->text_exists($message)) {
+            $message = $this->app->gettext(array('name' => $message, 'vars' => $vars));
+        }
+
+        printf("[%s] %s\n", strtoupper($type), $message);
+    }
+
+    /**
+     * Redirect to a certain url.
+     *
+     * @see rcube_output::redirect()
+     */
+    function redirect($p = array(), $delay = 1)
+    {
+        // NOP
+    }
+
+    /**
+     * Send output to the client.
+     */
+    function send()
+    {
+        // NOP
+    }
+
+}

--
Gitblit v1.9.1