summaryrefslogtreecommitdiff
path: root/cli/_cli.php
diff options
context:
space:
mode:
authorGravatar Alexandre Alapetite <alexandre@alapetite.fr> 2016-10-22 12:58:06 +0200
committerGravatar Alexandre Alapetite <alexandre@alapetite.fr> 2016-10-22 12:58:06 +0200
commite1f214e9e2e09a83a9920e33fbf617dfe48fbb7e (patch)
tree916b23c04ce53891e8d9e2af6ed413c7f7379491 /cli/_cli.php
parent40b5d3f933e27f37894f58f99c63409f2cdd2d5a (diff)
CLI list-users and create-user
https://github.com/FreshRSS/FreshRSS/issues/1095 https://github.com/FreshRSS/FreshRSS/issues/1090
Diffstat (limited to 'cli/_cli.php')
-rw-r--r--cli/_cli.php39
1 files changed, 39 insertions, 0 deletions
diff --git a/cli/_cli.php b/cli/_cli.php
new file mode 100644
index 000000000..cb6d8ec32
--- /dev/null
+++ b/cli/_cli.php
@@ -0,0 +1,39 @@
+<?php
+if (php_sapi_name() !== 'cli') {
+ die('FreshRSS error: This PHP script may only be invoked from command line!');
+}
+
+require(dirname(__FILE__) . '/../constants.php');
+require(LIB_PATH . '/lib_rss.php');
+
+Minz_Configuration::register('system',
+ DATA_PATH . '/config.php',
+ DATA_PATH . '/config.default.php');
+FreshRSS_Context::$system_conf = Minz_Configuration::get('system');
+Minz_Translate::init();
+
+FreshRSS_Context::$isCli = true;
+
+function fail($message) {
+ fwrite(STDERR, $message . "\n");
+ die(1);
+}
+
+function cliInitUser($username) {
+ if (!ctype_alnum($username)) {
+ fail('FreshRSS error: invalid username: ' . $username . "\n");
+ }
+
+ $usernames = listUsers();
+ if (!in_array($username, $usernames)) {
+ fail('FreshRSS error: user not found: ' . $username . "\n");
+ }
+
+ FreshRSS_Context::$user_conf = get_user_configuration($username);
+ if (FreshRSS_Context::$user_conf == null) {
+ fail('FreshRSS error: invalid configuration for user: ' . $username . "\n");
+ }
+ new Minz_ModelPdo($username);
+
+ return $username;
+}