]> git.mxchange.org Git - friendica.git/commitdiff
Console script to ensure that all post updates are finished
authorMichael <heluecht@pirati.ca>
Fri, 10 Aug 2018 21:20:25 +0000 (21:20 +0000)
committerMichael <heluecht@pirati.ca>
Fri, 10 Aug 2018 21:20:25 +0000 (21:20 +0000)
src/Core/Console.php
src/Core/Console/PostUpdate.php [new file with mode: 0644]
src/Database/PostUpdate.php

index a5aff4ae801faa786f50079117dfca59c583be77..63af50ee22ce186b983aebbc66de51709560c340 100644 (file)
@@ -28,6 +28,7 @@ class Console extends \Asika\SimpleConsole\Console
                'php2po'                 => __NAMESPACE__ . '\Console\PhpToPo',
                'po2php'                 => __NAMESPACE__ . '\Console\PoToPhp',
                'typo'                   => __NAMESPACE__ . '\Console\Typo',
+               'postupdate'             => __NAMESPACE__ . '\Console\PostUpdate',
        ];
 
        protected function getHelp()
@@ -51,6 +52,7 @@ Commands:
        php2po                 Generate a messages.po file from a strings.php file
        po2php                 Generate a strings.php file from a messages.po file
        typo                   Checks for parse errors in Friendica files
+       postupdate             Execute pending post update scripts (can last days)
 
 Options:
        -h|--help|-? Show help information
diff --git a/src/Core/Console/PostUpdate.php b/src/Core/Console/PostUpdate.php
new file mode 100644 (file)
index 0000000..97c19b0
--- /dev/null
@@ -0,0 +1,42 @@
+<?php
+
+namespace Friendica\Core\Console;
+
+use Friendica\Core\L10n;
+
+/**
+ * @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.
+ *
+ * License: AGPLv3 or later, same as Friendica
+ *
+ * @author Tobias Diekershoff <mrpetovan@gmail.com>
+ * @author Hypolite Petovan <mrpetovan@gmail.com>
+ */
+class PostUpdate extends \Asika\SimpleConsole\Console
+{
+       protected function doExecute()
+       {
+               $a = get_app();
+
+               if (count($this->args) > 0) {
+                       throw new \Asika\SimpleConsole\CommandArgsException('Too many arguments');
+               }
+
+               if ($a->isInstallMode()) {
+                       throw new \RuntimeException('Database isn\'t ready or populated yet');
+               }
+
+               echo L10n::t('Execute pending post updates.') . "\n";
+
+               while (!\Friendica\Database\PostUpdate::update()) {
+                       echo '.';
+               }
+
+               echo "\n" . L10n::t('All pending post updates are done.') . "\n";
+
+               return 0;
+       }
+}
index 8805961153d736315b2c3c51220de9e6fd32782b..b7c69668e066012c21542cd03b5ad8fdfc4b533d 100644 (file)
@@ -24,20 +24,22 @@ class PostUpdate
        public static function update()
        {
                if (!self::update1194()) {
-                       return;
+                       return false;
                }
                if (!self::update1198()) {
-                       return;
+                       return false;
                }
                if (!self::update1206()) {
-                       return;
+                       return false;
                }
                if (!self::update1279()) {
-                       return;
+                       return false;
                }
                if (!self::update1281()) {
-                       return;
+                       return false;
                }
+
+               return true;
        }
 
        /**