]> git.wh0rd.org - tt-rss.git/blobdiff - update.php
Merge pull request #47 from xaberus/master
[tt-rss.git] / update.php
index 0809427365df2af404720476fa5b9e043c4b7940..ba4cadbcba9d70527d3f7ad2e404302831376e91 100755 (executable)
@@ -1,7 +1,7 @@
 #!/usr/bin/env php
 <?php
-       set_include_path(get_include_path() . PATH_SEPARATOR .
-               dirname(__FILE__) . "/include");
+       set_include_path(dirname(__FILE__) ."/include" . PATH_SEPARATOR .
+               get_include_path());
 
        define('DISABLE_SESSIONS', true);
 
@@ -9,15 +9,19 @@
 
        require_once "functions.php";
        require_once "rssfuncs.php";
-       require_once "sanity_check.php";
        require_once "config.php";
+       require_once "sanity_check.php";
        require_once "db.php";
        require_once "db-prefs.php";
-       require_once "update_self.php";
 
        if (!defined('PHP_EXECUTABLE'))
                define('PHP_EXECUTABLE', '/usr/bin/php');
 
+       // Create a database connection.
+       $link = db_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME);
+
+       init_connection($link);
+
        $op = $argv;
 
        if (count($argv) == 0 && !defined('STDIN')) {
                print "  -feedbrowser        - update feedbrowser\n";
                print "  -daemon             - start single-process update daemon\n";
                print "  -cleanup-tags       - perform tags table maintenance\n";
-               print "  -get-feeds          - receive popular feeds from linked instances\n";
-               print "  -import USER FILE   - import articles from XML\n";
-               print "  -update-self        - update tt-rss installation to latest version\n";
                print "  -quiet              - don't show messages\n";
                print "  -indexes            - recreate missing schema indexes\n";
                print "  -convert-filters    - convert type1 filters to type2\n";
                print "  -force-update       - force update of all feeds\n";
+               print "  -list-plugins       - list all available plugins\n";
                print "  -help               - show this help\n";
+               print "Plugin options:\n";
+
+               foreach ($pluginhost->get_commands() as $command => $data) {
+                       printf("  %-19s - %s\n", "$command", $data["description"]);
+               }
+
                return;
        }
 
                        "Maybe another update process is already running.\n");
        }
 
-       // Create a database connection.
-       $link = db_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME);
-
-       init_connection($link);
-
        if (in_array("-feeds", $op)) {
                // Update all feeds needing a update.
                update_daemon_common($link);
@@ -93,7 +96,8 @@
                $rc = cleanup_tags($link, 14, 50000);
                _debug("Cleaned $rc cached tags.");
 
-               get_linked_feeds($link);
+               global $pluginhost;
+               $pluginhost->run_hooks($pluginhost::HOOK_UPDATE_TASK, "hook_update_task", $op);
        }
 
        if (in_array("-feedbrowser", $op)) {
 
                        _debug("Cleaned $rc cached tags.");
 
-                       get_linked_feeds($link);
+                       global $pluginhost;
+                       $pluginhost->run_hooks($pluginhost::HOOK_UPDATE_TASK, "hook_update_task", $op);
                }
 
        }
                _debug("$rc tags deleted.\n");
        }
 
-       if (in_array("-get-feeds", $op)) {
-               get_linked_feeds($link);
-       }
-
-       if (in_array("-import",$op)) {
-               $username = $argv[count($argv) - 2];
-               $filename = $argv[count($argv) - 1];
-
-               if (!$username) {
-                       print "error: please specify username.\n";
-                       return;
-               }
-
-               if (!is_file($filename)) {
-                       print "error: input filename ($filename) doesn't exist.\n";
-                       return;
-               }
-
-               _debug("importing $filename for user $username...\n");
-
-               $result = db_query($link, "SELECT id FROM ttrss_users WHERE login = '$username'");
-
-               if (db_num_rows($result) == 0) {
-                       print "error: could not find user $username.\n";
-                       return;
-               }
-
-               $owner_uid = db_fetch_result($result, 0, "id");
-
-               perform_data_import($link, $filename, $owner_uid);
-
-       }
-
        if (in_array("-indexes", $op)) {
                _debug("PLEASE BACKUP YOUR DATABASE BEFORE PROCEEDING!");
                _debug("Type 'yes' to continue.");
                _debug("all done.");
        }
 
-       if (in_array("-update-self", $op)) {
-               _debug("Warning: self-updating is experimental. Use at your own risk.");
-               _debug("Please backup your tt-rss directory before continuing. Your database will not be modified.");
-               _debug("Type 'yes' to continue.");
-
-               if (read_stdin() != 'yes')
-                       exit;
-
-               update_self($link, in_array("-force", $op));
-       }
-
        if (in_array("-convert-filters", $op)) {
                _debug("WARNING: this will remove all existing type2 filters.");
                _debug("Type 'yes' to continue.");
                                last_updated = '1970-01-01'");
        }
 
+       if (in_array("-list-plugins", $op)) {
+               $tmppluginhost = new PluginHost($link);
+               $tmppluginhost->load_all($tmppluginhost::KIND_ALL);
+               $enabled = array_map("trim", explode(",", PLUGINS));
+
+               echo "List of all available plugins:\n";
+
+               foreach ($tmppluginhost->get_plugins() as $name => $plugin) {
+                       $about = $plugin->about();
+
+                       $status = $about[3] ? "system" : "user";
+
+                       if (in_array($name, $enabled)) $name .= "*";
+
+                       printf("%-50s %-10s v%.2f (by %s)\n%s\n\n",
+                               $name, $status, $about[0], $about[2], $about[1]);
+               }
+
+               echo "Plugins marked by * are currently enabled for all users.\n";
+
+       }
+
+       $pluginhost->run_commands($op);
+
        db_close($link);
 
        if ($lock_handle != false) {