From fdb1fc760846e523c64ef10bd89f046580b6d9cb Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Fri, 20 Dec 2019 18:17:05 +0300 Subject: get_version: fix commit/timestamp lost on subsequent invocations because of misbehaving caching --- include/functions.php | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) (limited to 'include/functions.php') diff --git a/include/functions.php b/include/functions.php index f244b47b8..537139d18 100644 --- a/include/functions.php +++ b/include/functions.php @@ -1892,20 +1892,26 @@ function get_version(&$git_commit = false, &$git_timestamp = false) { global $ttrss_version; - if (isset($ttrss_version)) - return $ttrss_version; + if (is_array($ttrss_version) && isset($ttrss_version['version'])) { + $git_commit = $ttrss_version['commit']; + $git_timestamp = $ttrss_version['timestamp']; - $ttrss_version = "UNKNOWN (Unsupported)"; + return $ttrss_version['version']; + } else { + $ttrss_version = []; + } + + $ttrss_version['version'] = "UNKNOWN (Unsupported)"; date_default_timezone_set('UTC'); $root_dir = dirname(dirname(__FILE__)); if ('\\' === DIRECTORY_SEPARATOR) { - $ttrss_version = "UNKNOWN (Unsupported, Windows)"; + $ttrss_version['version'] = "UNKNOWN (Unsupported, Windows)"; } else if (PHP_OS === "Darwin") { - $ttrss_version = "UNKNOWN (Unsupported, Darwin)"; + $ttrss_version['version'] = "UNKNOWN (Unsupported, Darwin)"; } else if (file_exists("$root_dir/version_static.txt")) { - $ttrss_version = trim(file_get_contents("$root_dir/version_static.txt")) . " (Unsupported)"; + $ttrss_version['version'] = trim(file_get_contents("$root_dir/version_static.txt")) . " (Unsupported)"; } else if (is_dir("$root_dir/.git")) { $rc = 0; $output = []; @@ -1923,12 +1929,14 @@ $git_commit = $commit; $git_timestamp = $timestamp; - $ttrss_version = strftime("%y.%m", $timestamp) . "-$commit"; + $ttrss_version['version'] = strftime("%y.%m", $timestamp) . "-$commit"; + $ttrss_version['commit'] = $commit; + $ttrss_version['timestamp'] = $timestamp; } } else { user_error("Unable to determine version (using $root_dir): " . implode("\n", $output), E_USER_WARNING); } } - return $ttrss_version; + return $ttrss_version['version']; } -- cgit v1.2.3-54-g00ecf