aboutsummaryrefslogtreecommitdiff
path: root/cli
diff options
context:
space:
mode:
authorGravatar Alexandre Alapetite <alexandre@alapetite.fr> 2017-02-24 23:00:44 +0100
committerGravatar GitHub <noreply@github.com> 2017-02-24 23:00:44 +0100
commit7757f9c2b257ddf7a282447805db05c43c616c11 (patch)
tree69ffd0f255b5430ecd87c28ec3e12121472202a9 /cli
parent686311463b2bf82405d0d113469dab62a0980532 (diff)
parent1fc3054c2f85478df53b19365c1b0ebc46c372af (diff)
Merge pull request #1439 from dswd/cli-reconfigure
Added cli tool to reconfigure FreshRSS
Diffstat (limited to 'cli')
-rwxr-xr-xcli/reconfigure.php58
1 files changed, 58 insertions, 0 deletions
diff --git a/cli/reconfigure.php b/cli/reconfigure.php
new file mode 100755
index 000000000..5294dd2df
--- /dev/null
+++ b/cli/reconfigure.php
@@ -0,0 +1,58 @@
+#!/usr/bin/php
+<?php
+require('_cli.php');
+
+$params = array(
+ 'environment:',
+ 'base_url:',
+ 'title:',
+ 'default_user:',
+ 'allow_anonymous',
+ 'allow_anonymous_refresh',
+ 'auth_type:',
+ 'api_enabled',
+ 'allow_robots',
+ 'disable_update',
+ );
+
+$dBparams = array(
+ 'db-type:',
+ 'db-host:',
+ 'db-user:',
+ 'db-password:',
+ 'db-base:',
+ 'db-prefix:',
+ );
+
+$options = getopt('', array_merge($params, $dBparams));
+
+fwrite(STDERR, 'Reconfiguring FreshRSS…' . "\n");
+
+$config = Minz_Configuration::get('system');
+foreach ($params as $param) {
+ $param = rtrim($param, ':');
+ if (isset($options[$param])) {
+ $config->$param = $options[$param] === false ? true : $options[$param];
+ }
+}
+$db = $config->db;
+foreach ($dBparams as $dBparam) {
+ $dBparam = rtrim($dBparam, ':');
+ if (isset($options[$dBparam])) {
+ $param = substr($dBparam, strlen('db-'));
+ $db[$param] = $options[$dBparam];
+ }
+}
+$config->db = $db;
+
+if (!ctype_alnum($config->default_user)) {
+ fail('FreshRSS invalid default username (must be ASCII alphanumeric): ' . $config->default_user);
+}
+
+if (isset($config->auth_type) && !in_array($config->auth_type, array('form', 'http_auth', 'none'))) {
+ fail('FreshRSS invalid authentication method (auth_type must be one of { form, http_auth, none }: ' . $config->auth_type);
+}
+
+$config->save();
+
+done();