mirror of
https://github.com/YACReader/yacreader
synced 2025-07-14 02:54:46 -04:00
Add the ability to update libraries to new versions in the headless server
It checks the libraries on the start up. It will block the app until everyting it is ready. C
This commit is contained in:
39
YACReaderLibraryServer/libraries_updater.cpp
Normal file
39
YACReaderLibraryServer/libraries_updater.cpp
Normal file
@ -0,0 +1,39 @@
|
||||
#include "libraries_updater.h"
|
||||
|
||||
#include "yacreader_libraries.h"
|
||||
#include "data_base_management.h"
|
||||
|
||||
|
||||
|
||||
LibrariesUpdater::LibrariesUpdater()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void LibrariesUpdater::updateIfNeeded()
|
||||
{
|
||||
YACReaderLibraries libraries;
|
||||
|
||||
libraries.load();
|
||||
|
||||
foreach(QString name, libraries.getNames()) {
|
||||
QString path = libraries.getPath(name) + "/.yacreaderlibrary";
|
||||
|
||||
QDir d;
|
||||
|
||||
QString dbVersion;
|
||||
if(d.exists(path) && d.exists(path+"/library.ydb") && (dbVersion = DataBaseManagement::checkValidDB(path+"/library.ydb")) != "")
|
||||
{
|
||||
int comparation = DataBaseManagement::compareVersions(dbVersion,VERSION);
|
||||
|
||||
if(comparation < 0)
|
||||
{
|
||||
bool updated = DataBaseManagement::updateToCurrentVersion(path);
|
||||
if(!updated) {
|
||||
//TODO log error
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user