1#ifndef LIBS_BASIC_VERSION_HPP_
2#define LIBS_BASIC_VERSION_HPP_
11#include "third_party/HTTPRequest.hpp"
14#define RESET "\033[0m"
15#define BLACK "\033[30m"
17#define GREEN "\033[32m"
18#define YELLOW "\033[33m"
19#define BLUE "\033[34m"
20#define MAGENTA "\033[35m"
21#define CYAN "\033[36m"
22#define WHITE "\033[37m"
23#define BOLD_BLACK "\033[1m\033[30m"
24#define BOLD_RED "\033[1m\033[31m"
25#define BOLD_GREEN "\033[1m\033[32m"
26#define BOLD_YELLOW "\033[1m\033[33m"
27#define BOLD_BLUE "\033[1m\033[34m"
28#define BOLD_MAGENTA "\033[1m\033[35m"
29#define BOLD_CYAN "\033[1m\033[36m"
30#define BOLD_WHITE "\033[1m\033[37m"
31#define SUB_WHITE "\033[4m\033[37m"
95 printf(
_(
"\tVersion: "));
118 printf(
"%s", msg.c_str());
139 printf(
_(
"\tVersion: "));
162 printf(
"%s", msg.c_str());
186 auto httpRequest = http::Request(
"http://192.168.0.30/latest/version.txt");
187 const auto response = httpRequest.send();
189 if (response.status.code != http::Status::Code::Ok)
191 version = std::nullopt;
195 std::string receivedBody(response.body.begin(), response.body.end());
197 const auto versionLine = std::find_if(splitted.begin(), splitted.end(), [](
const std::string &line)
198 { return line.find(
"COMMIT") != std::string::npos; });
199 if (versionLine == splitted.end())
201 version = std::nullopt;
206 if (versionString.size() != 2)
208 version = std::nullopt;
212 version = versionString[1];
214 return version.value() != currentVersion;
216 catch (
const std::exception &e)
218 std::cerr << e.what() << std::endl;
225 const std::string &codename,
const std::string &buildNumber,
226 const std::string &sourceCommitId)
230 message = programName +
" info:\n\t";
231 message +=
"Codename: " + codename +
"\n\t";
232 message +=
_(
"Version: ") + version +
"\n\t";
233 message +=
"Git:" + sourceCommitId +
"\n\t";
234 message +=
_(
"Compiled date: ") + buildNumber +
"\n";
static void showInfoDialog(std::string_view msg)
Show a zenity dialog with the message.
Definition CLoggerZenity.cpp:81
Definition version.hpp:37
Version & operator=(Version &&other)=delete
static const std::string kPrvDevelopingMessage
Definition version.hpp:251
static const std::string kPrvDiamarEditorVersion
Definition version.hpp:248
static std::string diamarVersion()
Definition version.hpp:56
static const std::string kPrvDiamarCodename
Definition version.hpp:249
static const std::string kPrvGitBuildData
Definition version.hpp:253
static bool isUpdateAvailable(std::optional< std::string > &version)
Definition version.hpp:181
static void showDiamarInfo(bool showInConsole=false)
Definition version.hpp:153
static const std::string kPrvDiamarName
Definition version.hpp:245
static std::string prvBuildMessageInfo(const std::string &programName, const std::string &version, const std::string &codename, const std::string &buildNumber, const std::string &sourceCommitId)
Definition version.hpp:224
Version(Version &&other)=delete
static const std::string kPrvCompanyName
Definition version.hpp:243
static void showDiamarEditorHelp()
Definition version.hpp:91
static std::string diamarEditorVersion()
Definition version.hpp:61
static std::string developingMessage()
Definition version.hpp:51
static void showDiamarEditorInfo(bool showInConsole=false)
Definition version.hpp:109
static std::string gitCommit()
Definition version.hpp:86
static void showDiamarHelp()
Definition version.hpp:135
static const std::string kPrvDiamarEditorName
Definition version.hpp:247
static void showDiamarEditorVersion()
Definition version.hpp:127
static std::string diamarCodename()
Definition version.hpp:66
static const std::string kPrvDiamarVersion
Definition version.hpp:246
static const std::string kPrvGitCommit
Definition version.hpp:255
static void showDiamarVersion()
Definition version.hpp:173
Version(const Version &other)=delete
static std::string gitBuildTimestamp()
Definition version.hpp:81
static std::string companyName()
Definition version.hpp:46
static const std::string kPrvTimestamp
Definition version.hpp:254
Version & operator=(const Version &other)=delete
static std::string diamarEditorName()
Definition version.hpp:71
static std::string gitBuildData()
Definition version.hpp:76
#define _(string)
Definition defines.hpp:169
void debugInfo(std::string_view message)
Definition assert.cpp:123
std::vector< StringType > splitOn(const StringType &str, const DelimiterType &delim)
Definition stringUtils.hpp:104
#define SUB_WHITE
Definition version.hpp:31
#define BOLD_WHITE
Definition version.hpp:30
#define RESET
Definition version.hpp:14