X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FCore%2FConsole%2FPostUpdate.php;h=103d0fef7e68062928cdfd79100234a8dfd0187d;hb=3aa77685fcccff9739384136b4894de43200fa8c;hp=97c19b0c1ea93a4f3fc5a6b70dbc733205e55923;hpb=5037f9c4601bc1ccbf9368d47a98214b581bc498;p=friendica.git diff --git a/src/Core/Console/PostUpdate.php b/src/Core/Console/PostUpdate.php index 97c19b0c1e..103d0fef7e 100644 --- a/src/Core/Console/PostUpdate.php +++ b/src/Core/Console/PostUpdate.php @@ -2,33 +2,63 @@ namespace Friendica\Core\Console; +use Friendica\Core\Config; use Friendica\Core\L10n; +use Friendica\Core\Update; /** - * @brief tool to block an account from the node - * - * With this tool, you can block an account in such a way, that no postings - * or comments this account writes are accepted to the node. + * Performs database post updates * * License: AGPLv3 or later, same as Friendica * - * @author Tobias Diekershoff - * @author Hypolite Petovan + * @author Tobias Diekershoff + * @author Hypolite Petovan */ class PostUpdate extends \Asika\SimpleConsole\Console { + protected $helpOptions = ['h', 'help', '?']; + + protected function getHelp() + { + $help = <<] + +Options + -h|--help|-? Show help information + --reset Reset the post update version +HELP; + return $help; + } + protected function doExecute() { - $a = get_app(); + $a = \Friendica\BaseObject::getApp(); - if (count($this->args) > 0) { - throw new \Asika\SimpleConsole\CommandArgsException('Too many arguments'); + if ($this->getOption($this->helpOptions)) { + $this->out($this->getHelp()); + return 0; } - if ($a->isInstallMode()) { + $reset_version = $this->getOption('reset'); + if (is_bool($reset_version)) { + $this->out($this->getHelp()); + return 0; + } elseif ($reset_version) { + Config::set('system', 'post_update_version', $reset_version); + echo L10n::t('Post update version number has been set to %s.', $reset_version) . "\n"; + return 0; + } + + if ($a->getMode()->isInstall()) { throw new \RuntimeException('Database isn\'t ready or populated yet'); } + echo L10n::t('Check for pending update actions.') . "\n"; + Update::run($a->getBasePath(), true, true, false); + echo L10n::t('Done.') . "\n"; + echo L10n::t('Execute pending post updates.') . "\n"; while (!\Friendica\Database\PostUpdate::update()) {