rework updater to use github tarballs; add some additional logging and

prevent old directory being renamed pointlessly in a few cases
(closes #559)
This commit is contained in:
Andrew Dolgov 2013-03-18 18:20:48 +04:00
parent e9f42579a3
commit 0ac2f52e14
1 changed files with 23 additions and 17 deletions

View File

@ -79,7 +79,6 @@ class Updater extends Plugin {
$stop = true; break; $stop = true; break;
} }
array_push($log, "Checking for latest version..."); array_push($log, "Checking for latest version...");
$version_info = json_decode(fetch_file_contents("http://tt-rss.org/version.php"), $version_info = json_decode(fetch_file_contents("http://tt-rss.org/version.php"),
@ -91,7 +90,7 @@ class Updater extends Plugin {
} }
$target_version = $version_info["version"]; $target_version = $version_info["version"];
$target_dir = "$parent_dir/tt-rss-$target_version"; $target_dir = "$parent_dir/Tiny-Tiny-RSS-$target_version";
array_push($log, "Target version: $target_version"); array_push($log, "Target version: $target_version");
$params["target_version"] = $target_version; $params["target_version"] = $target_version;
@ -110,7 +109,7 @@ class Updater extends Plugin {
case 1: case 1:
$target_version = $params["target_version"]; $target_version = $params["target_version"];
array_push($log, "Downloading checksums..."); /* array_push($log, "Downloading checksums...");
$md5sum_data = fetch_file_contents("http://tt-rss.org/download/md5sum.txt"); $md5sum_data = fetch_file_contents("http://tt-rss.org/download/md5sum.txt");
if (!$md5sum_data) { if (!$md5sum_data) {
@ -134,16 +133,18 @@ class Updater extends Plugin {
$stop = true; break; $stop = true; break;
} }
$params["target_md5sum"] = $target_md5sum; $params["target_md5sum"] = $target_md5sum; */
array_push($log, "Proceeding to download...");
break; break;
case 2: case 2:
$target_version = $params["target_version"]; $target_version = $params["target_version"];
$target_md5sum = $params["target_md5sum"]; // $target_md5sum = $params["target_md5sum"];
array_push($log, "Downloading distribution tarball..."); array_push($log, "Downloading distribution tarball...");
$tarball_url = "http://tt-rss.org/download/tt-rss-$target_version.tar.gz"; $tarball_url = "https://github.com/gothfox/Tiny-Tiny-RSS/archive/$target_version.tar.gz";
$data = fetch_file_contents($tarball_url); $data = fetch_file_contents($tarball_url);
if (!$data) { if (!$data) {
@ -151,14 +152,14 @@ class Updater extends Plugin {
$stop = true; break; $stop = true; break;
} }
array_push($log, "Verifying tarball checksum..."); /* array_push($log, "Verifying tarball checksum...");
$test_md5sum = md5($data); $test_md5sum = md5($data);
if ($test_md5sum != $target_md5sum) { if ($test_md5sum != $target_md5sum) {
array_push($log, "Downloaded checksum doesn't match (got $test_md5sum, expected $target_md5sum)."); array_push($log, "Downloaded checksum doesn't match (got $test_md5sum, expected $target_md5sum).");
$stop = true; break; $stop = true; break;
} } */
$tmp_file = tempnam(sys_get_temp_dir(), 'tt-rss'); $tmp_file = tempnam(sys_get_temp_dir(), 'tt-rss');
array_push($log, "Saving download to $tmp_file"); array_push($log, "Saving download to $tmp_file");
@ -180,14 +181,6 @@ class Updater extends Plugin {
$stop = true; break; $stop = true; break;
} }
$old_dir = tmpdirname($parent_dir, "tt-rss-old");
array_push($log, "Renaming tt-rss directory to ".basename($old_dir));
if (!rename($work_dir, $old_dir)) {
array_push($log, "Unable to rename tt-rss directory.");
$stop = true; break;
}
array_push($log, "Extracting tarball..."); array_push($log, "Extracting tarball...");
system("tar zxf $tmp_file", $system_rc); system("tar zxf $tmp_file", $system_rc);
@ -196,7 +189,20 @@ class Updater extends Plugin {
$stop = true; break; $stop = true; break;
} }
$target_dir = "$parent_dir/tt-rss-$target_version"; $target_dir = "$parent_dir/Tiny-Tiny-RSS-$target_version";
if (!is_dir($target_dir)) {
array_push($log, "Target directory ($target_dir) not found.");
$stop = true; break;
}
$old_dir = tmpdirname($parent_dir, "tt-rss-old");
array_push($log, "Renaming tt-rss directory to ".basename($old_dir));
if (!rename($work_dir, $old_dir)) {
array_push($log, "Unable to rename tt-rss directory.");
$stop = true; break;
}
array_push($log, "Renaming target directory..."); array_push($log, "Renaming target directory...");
if (!rename($target_dir, $work_dir)) { if (!rename($target_dir, $work_dir)) {