Files
web/scripts/pi-hole/php/update_checker.php
DL6ER 3783f63af8 Remove goto statement
Signed-off-by: DL6ER <dl6er@dl6er.de>
2017-10-31 21:17:37 +01:00

84 lines
2.3 KiB
PHP

<?php
$localversions = "/etc/pihole/localversions";
$localbranches = "/etc/pihole/localbranches";
$GitHubVersions = "/etc/pihole/GitHubVersions";
if(!is_readable($localversions) || !is_readable($localbranches) || !is_readable($GitHubVersions))
{
$core_branch = "master";
$core_current = "N/A";
$core_update = false;
$web_branch = "master";
$web_current = "N/A";
$web_update = false;
$FTL_current = "N/A";
$FTL_update = false;
}
else
{
$versions = explode(" ", file_get_contents($localversions));
$branches = explode(" ", file_get_contents($localbranches));
$GitHubversions = explode(" ", file_get_contents($GitHubVersions));
/********** Get Pi-hole core branch / version / commit **********/
// Check if on a dev branch
$core_branch = $branches[0];
if($core_branch !== "master") {
$core_current = "vDev";
$core_commit = $versions[0];
}
else {
$core_current = explode("-",$versions[0])[0];
}
/********** Get Pi-hole web branch / version / commit **********/
$web_branch = $branches[1];
if($web_branch !== "master") {
$web_current = "vDev";
$web_commit = $versions[1];
}
else {
$web_current = explode("-",$versions[1])[0];
}
/********** Get Pi-hole FTL version (not a git repository) **********/
$FTL_current = $versions[2];
// Get data from GitHub
$core_latest = $GitHubversions[1];
$web_latest = $GitHubversions[2];
$FTL_latest = $GitHubversions[3];
// Core version comparison
if($core_current !== "vDev")
{
// This logic allows the local core version to be newer than the upstream version
// The update indicator is only shown if the upstream version is NEWER
$core_update = (version_compare($core_current, $core_latest) < 0);
}
else
{
$core_update = false;
}
// Web version comparison
if($web_current !== "vDev")
{
// This logic allows the local core version to be newer than the upstream version
// The update indicator is only shown if the upstream version is NEWER
$web_update = (version_compare($web_current, $web_latest) < 0);
}
else
{
$web_update = false;
}
// FTL version comparison
// This logic allows the local core version to be newer than the upstream version
// The update indicator is only shown if the upstream version is NEWER
$FTL_update = (version_compare($FTL_current, $FTL_latest) < 0);
}
?>