From 47a54fadd1e27bfcc31f1c530fe3479c9fca2ec8 Mon Sep 17 00:00:00 2001 From: James Valleroy Date: Thu, 10 Mar 2016 17:04:14 -0500 Subject: [PATCH] ttrss: Add basic configuration --- actions/ttrss | 35 +++++++++++++++++++++++ plinth/modules/ttrss/__init__.py | 11 +++++-- plinth/modules/ttrss/templates/ttrss.html | 12 ++++++++ 3 files changed, 56 insertions(+), 2 deletions(-) diff --git a/actions/ttrss b/actions/ttrss index 43daa2d15..e20c59c18 100755 --- a/actions/ttrss +++ b/actions/ttrss @@ -22,29 +22,64 @@ Configuration helper for Tiny Tiny RSS. """ import argparse +import augeas from plinth import action_utils +CONFIG_FILE = '/etc/tt-rss/config.php' +DEFAULT_FILE = '/etc/default/tt-rss' + def parse_arguments(): """Return parsed command line arguments as dictionary.""" parser = argparse.ArgumentParser() subparsers = parser.add_subparsers(dest='subcommand', help='Sub command') + subparsers.add_parser('setup', help='Setup Tiny Tiny RSS configuration') subparsers.add_parser('enable', help='Enable Tiny Tiny RSS site') subparsers.add_parser('disable', help='Disable Tiny Tiny RSS site') return parser.parse_args() +def subcommand_setup(_): + """Setup Tiny Tiny RSS configuration.""" + aug = load_augeas() + + aug.set('/files' + DEFAULT_FILE + '/DISABLED', '0') + + for match in aug.match('/files' + CONFIG_FILE + '/define'): + if aug.get(match) == 'SELF_URL_PATH': + aug.set(match + '/value', "'http://localhost/tt-rss/'") + + aug.save() + + action_utils.service_restart('tt-rss') + action_utils.webserver_enable('50-tt-rss') + + def subcommand_enable(_): """Enable web configuration and reload.""" + action_utils.service_enable('tt-rss') action_utils.webserver_enable('50-tt-rss') def subcommand_disable(_): """Disable web configuration and reload.""" action_utils.webserver_disable('50-tt-rss') + action_utils.service_disable('tt-rss') + + +def load_augeas(): + """Initialize Augeas.""" + aug = augeas.Augeas(flags=augeas.Augeas.NO_LOAD + + augeas.Augeas.NO_MODL_AUTOLOAD) + aug.set('/augeas/load/Shellvars/lens', 'Shellvars.lns') + aug.set('/augeas/load/Shellvars/incl[last() + 1]', DEFAULT_FILE) + aug.set('/augeas/load/Phpvars/lens', 'Phpvars.lns') + aug.set('/augeas/load/Phpvars/incl[last() + 1]', CONFIG_FILE) + aug.load() + return aug def main(): diff --git a/plinth/modules/ttrss/__init__.py b/plinth/modules/ttrss/__init__.py index 920975705..e2a29ab8f 100644 --- a/plinth/modules/ttrss/__init__.py +++ b/plinth/modules/ttrss/__init__.py @@ -58,13 +58,15 @@ def init(): def setup(helper, old_version=None): """Install and configure the module.""" - helper.install(['tt-rss']) + helper.install(['tt-rss', 'postgresql', 'dbconfig-pgsql', 'php5-pgsql']) + helper.call('post', actions.superuser_run, 'ttrss', ['setup']) helper.call('post', service.notify_enabled, None, True) def get_status(): """Get the current settings.""" - return {'enabled': is_enabled()} + return {'enabled': is_enabled(), + 'is_running': is_running()} def is_enabled(): @@ -72,6 +74,11 @@ def is_enabled(): return action_utils.webserver_is_enabled('50-tt-rss') +def is_running(): + """Return whether the service is running.""" + return action_utils.service_is_running('tt-rss') + + def enable(should_enable): """Enable/disable the module.""" sub_command = 'enable' if should_enable else 'disable' diff --git a/plinth/modules/ttrss/templates/ttrss.html b/plinth/modules/ttrss/templates/ttrss.html index 0144ad4dd..4cd57ebac 100644 --- a/plinth/modules/ttrss/templates/ttrss.html +++ b/plinth/modules/ttrss/templates/ttrss.html @@ -23,6 +23,18 @@ {% block configuration %} +

{% trans "Status" %}

+ +

+ {% if status.is_running %} + + {% trans "Tiny Tiny RSS feed update service is running" %} + {% else %} + + {% trans "Tiny Tiny RSS feed update service is not running" %} + {% endif %} +

+ {% include "diagnostics_button.html" with module="ttrss" %}