aboutsummaryrefslogtreecommitdiff
path: root/cli/_update-or-create-user.php
diff options
context:
space:
mode:
authorGravatar Kasimir Cash <kasimir.cash@outlook.com> 2024-02-28 12:23:28 +0000
committerGravatar GitHub <noreply@github.com> 2024-02-28 13:23:28 +0100
commit4b29e666b06762b4b36438c9370c38bc43121f78 (patch)
tree2b92dcbc5879aa7de8eeec81ccde208f572b3cf0 /cli/_update-or-create-user.php
parent5de794ee0fbbce2fdf0af3787b9b89299be8698e (diff)
Command Line Parser Concept (#6099)
* Adds logic for validation * Adds validation to do-install * Adds help to do-install * Adds validation & help to reconfigure * Adds validation to check.translation * Adds validation to manipulate.translation * Small fixes to help texts * Refactors language option validation * Adds default options to validation * Fixes validation with regex * Refactors readAs functions * Updates to new regex validation format * Fixes typing around default values * Adds file extension validation * Restandardises validation & parsing typing around array of strings * Adds NotOneOf validation * Adds ArrayOfString read as * Refactors existing validation * Adds validation throughout cli * Removes unused file * Adds new CL parser with goal of wrapping CLI behaviour * Hides parsing and validation * Rewites CL parser to make better use of classes * Rolls out new parser across CL * Fixes error during unknown option check * Fixes misnamed property calls * Seperates validations into more appropriate locations * Adds common boolean forms to validation * Moves CommandLineParser and Option classes into their own files * Fixes error when validating Int type * Rewrites appendTypedValues -> appendTypedValidValues now filters invalid values from output * Renames -> for clarity * Adds some docs clarifying option defaults and value taking behaviour * Refactors getUsageMessage for readability * Minor formatting changes * Adds tests for CommandLineParser * Adds more tests * Adds minor fixs * Reconfigure now correctly updates config * More fixes to reconfigure * Fixes required files for CommandLineParserTest * Use .php extension for PHP file * PHPStan ignore instead of wrong typing * Refactors to support php 7.4 * Moves away from dynamic properties by adding 'Definintions' to all commands * Renames target to definition for clarity * Stops null from being returned as a valid value in a certain edge case * Adds PHPStan ignore instead of incorrect typing * Refactors tests to take account of new typing solution * Marks file as executable * Draft CLI rework * Finish rewrite as object-oriented * Fix PHPStan ignore and make more strongly typed * Rename class Option to CliOption * Light renaming + anonymous classes --------- Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
Diffstat (limited to 'cli/_update-or-create-user.php')
-rw-r--r--cli/_update-or-create-user.php71
1 files changed, 0 insertions, 71 deletions
diff --git a/cli/_update-or-create-user.php b/cli/_update-or-create-user.php
deleted file mode 100644
index 1cc08bd25..000000000
--- a/cli/_update-or-create-user.php
+++ /dev/null
@@ -1,71 +0,0 @@
-<?php
-declare(strict_types=1);
-require(__DIR__ . '/_cli.php');
-
-performRequirementCheck(FreshRSS_Context::systemConf()->db['type'] ?? '');
-
-$parameters = [
- 'long' => [
- 'user' => ':',
- 'password' => ':',
- 'api-password' => ':',
- 'language' => ':',
- 'email' => ':',
- 'token' => ':',
- 'purge-after-months' => ':',
- 'feed-min-articles-default' => ':',
- 'feed-ttl-default' => ':',
- 'since-hours-posts-per-rss' => ':',
- 'max-posts-per-rss' => ':',
- ],
- 'short' => [],
- 'deprecated' => [
- 'api-password' => 'api_password',
- 'purge-after-months' => 'purge_after_months',
- 'feed-min-articles-default' => 'feed_min_articles_default',
- 'feed-ttl-default' => 'feed_ttl_default',
- 'since-hours-posts-per-rss' => 'since_hours_posts_per_rss',
- 'max-posts-per-rss' => 'max_posts_per_rss',
- ],
-];
-
-if (!isset($isUpdate)) {
- $isUpdate = false;
-} elseif (!$isUpdate) {
- $parameters['long']['no-default-feeds'] = ''; //Only for creating new users
- $parameters['deprecated']['no-default-feeds'] = 'no_default_feeds';
-}
-
-$GLOBALS['options'] = parseCliParams($parameters);
-
-if (!empty($options['invalid']) || empty($options['valid']['user'])) {
- fail('Usage: ' . basename($_SERVER['SCRIPT_FILENAME']) .
- " --user username ( --password 'password' --api-password 'api_password'" .
- " --language en --email user@example.net --token 'longRandomString'" .
- ($isUpdate ? '' : ' --no-default-feeds') .
- " --purge-after-months 3 --feed-min-articles-default 50 --feed-ttl-default 3600" .
- " --since-hours-posts-per-rss 168 --max-posts-per-rss 400 )");
-}
-
-function strParam(string $name): ?string {
- global $options;
- return isset($options['valid'][$name]) ? strval($options['valid'][$name]) : null;
-}
-
-function intParam(string $name): ?int {
- global $options;
- return isset($options['valid'][$name]) && ctype_digit($options['valid'][$name]) ? intval($options['valid'][$name]) : null;
-}
-
-$values = array(
- 'language' => strParam('language'),
- 'mail_login' => strParam('email'),
- 'token' => strParam('token'),
- 'old_entries' => intParam('purge-after-months'), //TODO: Update with new mechanism
- 'keep_history_default' => intParam('feed-min-articles-default'), //TODO: Update with new mechanism
- 'ttl_default' => intParam('feed-ttl-default'),
- 'since_hours_posts_per_rss' => intParam('since-hours-posts-per-rss'),
- 'max_posts_per_rss' => intParam('max-posts-per-rss'),
- );
-
-$values = array_filter($values);