refactor: use semver for versioning
This commit is contained in:
parent
55d365c1b3
commit
ed0f694cd2
3
.gitmodules
vendored
3
.gitmodules
vendored
@ -32,3 +32,6 @@
|
||||
[submodule "deployment/flatpak/shared-modules"]
|
||||
path = deployment/flatpak/shared-modules
|
||||
url = https://github.com/flathub/shared-modules
|
||||
[submodule "lib/semver"]
|
||||
path = lib/semver
|
||||
url = https://github.com/Neargye/semver
|
||||
|
@ -1,7 +1,7 @@
|
||||
cmake_minimum_required(VERSION 3.1)
|
||||
project(soundux VERSION 0.2.2 DESCRIPTION "")
|
||||
project(soundux VERSION 0.2.3 DESCRIPTION "")
|
||||
|
||||
set(FULL_VERSION_STRING "0.2.2_b3")
|
||||
set(FULL_VERSION_STRING "0.2.3")
|
||||
option(EMBED_PATH "The path used for embedding" "OFF")
|
||||
option(USE_FLATPAK "Allows the program to run under flatpak" OFF)
|
||||
|
||||
@ -45,6 +45,7 @@ endif()
|
||||
target_compile_definitions(soundux PRIVATE SOUNDUX_VERSION="${FULL_VERSION_STRING}" WNCK_I_KNOW_THIS_IS_UNSTABLE=1)
|
||||
target_include_directories(soundux SYSTEM PRIVATE "src")
|
||||
target_include_directories(soundux SYSTEM PRIVATE "lib/miniaudio")
|
||||
target_include_directories(soundux SYSTEM PRIVATE "lib/semver/include")
|
||||
target_include_directories(soundux SYSTEM PRIVATE "lib/fancypp/include")
|
||||
target_include_directories(soundux SYSTEM PRIVATE "lib/json/single_include")
|
||||
target_include_directories(soundux SYSTEM PRIVATE "lib/InstanceGuard/Source")
|
||||
|
1
lib/semver
Submodule
1
lib/semver
Submodule
@ -0,0 +1 @@
|
||||
Subproject commit b06119fed9dd00f37c4d62625d82357862cf2dd6
|
@ -2,7 +2,7 @@
|
||||
#include <fancy.hpp>
|
||||
#include <json.hpp>
|
||||
#include <optional>
|
||||
#include <regex>
|
||||
#include <semver.hpp>
|
||||
|
||||
httplib::Client VersionCheck::client("https://api.github.com");
|
||||
|
||||
@ -19,27 +19,12 @@ std::optional<Soundux::Objects::VersionStatus> VersionCheck::getStatus()
|
||||
auto latestTag = parsed[0]["name"];
|
||||
if (!latestTag.is_null())
|
||||
{
|
||||
static std::regex lastNumber(R"(.*(\d))");
|
||||
bool outdated = false;
|
||||
|
||||
std::smatch match;
|
||||
auto latestTagStr = latestTag.get<std::string>();
|
||||
if (std::regex_search(latestTagStr, match, lastNumber))
|
||||
{
|
||||
auto remoteNumber = std::stoi(match[1]);
|
||||
auto localVersion = std::string(SOUNDUX_VERSION);
|
||||
if (std::regex_search(localVersion, match, lastNumber))
|
||||
{
|
||||
auto localNumber = std::stoi(match[1]);
|
||||
|
||||
if (remoteNumber > localNumber)
|
||||
{
|
||||
outdated = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
auto remote = semver::from_string(latestTagStr);
|
||||
auto local = semver::from_string(SOUNDUX_VERSION);
|
||||
|
||||
return Soundux::Objects::VersionStatus{SOUNDUX_VERSION, latestTag, outdated};
|
||||
return Soundux::Objects::VersionStatus{SOUNDUX_VERSION, latestTagStr, remote > local};
|
||||
}
|
||||
Fancy::fancy.logTime().warning() << "Failed to find latest tag" << std::endl;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user