From 661135c742cc31bc0eece3bb669dad707d0aff66 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Tue, 9 Nov 2010 16:33:08 +0300 Subject: unify update_daemon, update_feeds and update_feedbrowser into update.php; move update.php to db-updater.php --- update.php | 215 ++++++++++++++++++++----------------------------------------- 1 file changed, 71 insertions(+), 144 deletions(-) mode change 100644 => 100755 update.php (limited to 'update.php') diff --git a/update.php b/update.php old mode 100644 new mode 100755 index 76e308856..50b9fc412 --- a/update.php +++ b/update.php @@ -1,171 +1,98 @@ +#!/usr/bin/php + $lock_handle = make_lockfile($lock_filename); + $must_exit = false; - - -Database Updater - - - + // Try to lock a file in order to avoid concurrent update. + if (!$lock_handle) { + die("error: Can't create lockfile ($lock_filename). ". + "Maybe another update process is already running.\n"); + } - + // Create a database connection. + $link = db_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME); - + if (!$link) { + if (DB_TYPE == "mysql") { + print mysql_error(); + } + // PG seems to display its own errors just fine by default. + return; + } - + init_connection($link); -

+ if ($op == "-feeds") { + // Update all feeds needing a update. + update_daemon_common($link); + } -" . - __("Could not find necessary schema file, need version:") . - " " . SCHEMA_VERSION . __(", found: ") . $latest_version . "

"; + // Call to the feed batch update function + // or regenerate feedbrowser cache + if (rand(0,100) > 30) { + update_daemon_common($link); } else { - print "

".__("Tiny Tiny RSS database is up to date.")."

"; - print "
- -
"; + $count = update_feedbrowser_cache($link); + _debug("Finished, $count feeds processed."); } - return; - } - - if (!$op) { - print_warning(__("Please backup your database before proceeding.")); - - print "

" . T_sprintf("Your Tiny Tiny RSS database needs update to the latest version (%d to %d).", $version, $latest_version) . "

"; - - /* print "

Available incremental updates:"; - - foreach (array_keys($update_versions) as $v) { - if ($v > $version) { - print " $v"; - } - } */ - - print "

"; - - print "
- - -
"; - - } else if ($op == "do") { - - print "

".__("Performing updates...")."

"; - - $num_updates = 0; - - foreach (array_keys($update_versions) as $v) { - if ($v == $version + 1) { - print "

".T_sprintf("Updating to version %d...", $v)."

"; - $fp = fopen($update_versions[$v], "r"); - if ($fp) { - while (!feof($fp)) { - $query = trim(getline($fp, ";")); - if ($query != "") { - print "

$query

"; - db_query($link, $query); - } - } - } - fclose($fp); - - print "

".__("Checking version... "); - - $result = db_query($link, "SELECT schema_version FROM ttrss_version"); - $version = db_fetch_result($result, 0, "schema_version"); - - if ($version == $v) { - print __("OK!"); - } else { - print "".__("ERROR!").""; - return; - } - - $num_updates++; - } - } - - print "

".T_sprintf("Finished. Performed %d update(s) up to schema - version %d.", $num_updates, $version)."

"; - - print "
- -
"; - } - -?> - - + db_close($link); + unlink(LOCK_DIRECTORY . "/$lock_filename"); +?> -- cgit v1.2.3