diff options
| author | 2024-02-28 12:23:28 +0000 | |
|---|---|---|
| committer | 2024-02-28 13:23:28 +0100 | |
| commit | 4b29e666b06762b4b36438c9370c38bc43121f78 (patch) | |
| tree | 2b92dcbc5879aa7de8eeec81ccde208f572b3cf0 /cli/_update-or-create-user.php | |
| parent | 5de794ee0fbbce2fdf0af3787b9b89299be8698e (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.php | 71 |
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); |
