Bladeren bron

Added cli tool to reconfigure FreshRSS

Dennis Schwerdel 9 jaren geleden
bovenliggende
commit
1fc3054c2f
1 gewijzigde bestanden met toevoegingen van 58 en 0 verwijderingen
  1. 58 0
      cli/reconfigure.php

+ 58 - 0
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();