refactor: use semver for versioning

This commit is contained in:
Curve 2021-05-14 22:13:54 +02:00
parent 55d365c1b3
commit ed0f694cd2
No known key found for this signature in database
GPG Key ID: 460F6C466BD35813
4 changed files with 11 additions and 21 deletions

3
.gitmodules vendored
View File

@ -32,3 +32,6 @@
[submodule "deployment/flatpak/shared-modules"] [submodule "deployment/flatpak/shared-modules"]
path = deployment/flatpak/shared-modules path = deployment/flatpak/shared-modules
url = https://github.com/flathub/shared-modules url = https://github.com/flathub/shared-modules
[submodule "lib/semver"]
path = lib/semver
url = https://github.com/Neargye/semver

View File

@ -1,7 +1,7 @@
cmake_minimum_required(VERSION 3.1) 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(EMBED_PATH "The path used for embedding" "OFF")
option(USE_FLATPAK "Allows the program to run under flatpak" 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_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 "src")
target_include_directories(soundux SYSTEM PRIVATE "lib/miniaudio") 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/fancypp/include")
target_include_directories(soundux SYSTEM PRIVATE "lib/json/single_include") target_include_directories(soundux SYSTEM PRIVATE "lib/json/single_include")
target_include_directories(soundux SYSTEM PRIVATE "lib/InstanceGuard/Source") target_include_directories(soundux SYSTEM PRIVATE "lib/InstanceGuard/Source")

1
lib/semver Submodule

@ -0,0 +1 @@
Subproject commit b06119fed9dd00f37c4d62625d82357862cf2dd6

View File

@ -2,7 +2,7 @@
#include <fancy.hpp> #include <fancy.hpp>
#include <json.hpp> #include <json.hpp>
#include <optional> #include <optional>
#include <regex> #include <semver.hpp>
httplib::Client VersionCheck::client("https://api.github.com"); httplib::Client VersionCheck::client("https://api.github.com");
@ -19,27 +19,12 @@ std::optional<Soundux::Objects::VersionStatus> VersionCheck::getStatus()
auto latestTag = parsed[0]["name"]; auto latestTag = parsed[0]["name"];
if (!latestTag.is_null()) if (!latestTag.is_null())
{ {
static std::regex lastNumber(R"(.*(\d))");
bool outdated = false;
std::smatch match;
auto latestTagStr = latestTag.get<std::string>(); 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) auto remote = semver::from_string(latestTagStr);
{ auto local = semver::from_string(SOUNDUX_VERSION);
outdated = true;
}
}
}
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; Fancy::fancy.logTime().warning() << "Failed to find latest tag" << std::endl;
} }