diff options
| author | crueter <crueter@eden-emu.dev> | 2026-02-01 20:38:02 +0100 |
|---|---|---|
| committer | crueter <crueter@eden-emu.dev> | 2026-02-01 20:38:02 +0100 |
| commit | 5113f503d140c1edd8670d03d44bcb79fb1a9518 (patch) | |
| tree | 33d4dcac7c9b72b4000d216b65abedcd1701693d /src/frontend_common/update_checker.cpp | |
| parent | a5f1c2bcb043f4300c467db05981a531c0a9d9d0 (diff) | |
[frontend] Fix nightly update checker (#3444)
Splitting
Signed-off-by: crueter <crueter@eden-emu.dev>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3444
Diffstat (limited to 'src/frontend_common/update_checker.cpp')
| -rw-r--r-- | src/frontend_common/update_checker.cpp | 46 |
1 files changed, 44 insertions, 2 deletions
diff --git a/src/frontend_common/update_checker.cpp b/src/frontend_common/update_checker.cpp index 53f3ca942d..1d7c8a4492 100644 --- a/src/frontend_common/update_checker.cpp +++ b/src/frontend_common/update_checker.cpp @@ -5,10 +5,13 @@ // Licensed under GPLv2 or any later version // Refer to the license.txt file included. -#include "update_checker.h" +#include <boost/algorithm/string/classification.hpp> +#include <boost/algorithm/string/split.hpp> + +#include <fmt/format.h> #include "common/logging/log.h" #include "common/scm_rev.h" -#include <fmt/format.h> +#include "update_checker.h" #include <httplib.h> @@ -137,3 +140,42 @@ std::optional<UpdateChecker::Update> UpdateChecker::GetLatestRelease(bool includ return {}; } } + +std::optional<UpdateChecker::Update> UpdateChecker::GetUpdate() { + const bool is_prerelease = ((strstr(Common::g_build_version, "pre-alpha") != NULL) || + (strstr(Common::g_build_version, "alpha") != NULL) || + (strstr(Common::g_build_version, "beta") != NULL) || + (strstr(Common::g_build_version, "rc") != NULL)); + const std::optional<UpdateChecker::Update> latest_release_tag = + UpdateChecker::GetLatestRelease(is_prerelease); + + if (!latest_release_tag) + goto empty; + + { + std::string tag, build; + if (Common::g_is_nightly_build) { + std::vector<std::string> result; + + boost::split(result, latest_release_tag->tag, boost::is_any_of(".")); + if (result.size() != 2) + goto empty; + tag = result[1]; + + boost::split(result, std::string{Common::g_build_version}, boost::is_any_of("-")); + if (result.empty()) + goto empty; + build = result[0]; + } else { + tag = latest_release_tag->tag; + build = Common::g_build_version; + } + + if (tag != build) + return latest_release_tag.value(); + } + +empty: + return UpdateChecker::Update{}; + +} |
