diff --git a/YACReaderLibraryServer/libraries_updater.cpp b/YACReaderLibraryServer/libraries_updater.cpp new file mode 100644 index 00000000..8e2ac597 --- /dev/null +++ b/YACReaderLibraryServer/libraries_updater.cpp @@ -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 + } + + } + } + } +} diff --git a/YACReaderLibraryServer/libraries_updater.h b/YACReaderLibraryServer/libraries_updater.h new file mode 100644 index 00000000..63e11393 --- /dev/null +++ b/YACReaderLibraryServer/libraries_updater.h @@ -0,0 +1,13 @@ +#ifndef LIBRARIES_UPDATER_H +#define LIBRARIES_UPDATER_H + + +class LibrariesUpdater +{ +public: + LibrariesUpdater(); + + void updateIfNeeded(); +}; + +#endif // LIBRARIES_UPDATER_H diff --git a/YACReaderLibraryServer/main.cpp b/YACReaderLibraryServer/main.cpp index 81e9cd80..48cc07ae 100644 --- a/YACReaderLibraryServer/main.cpp +++ b/YACReaderLibraryServer/main.cpp @@ -11,6 +11,8 @@ #include "yacreader_libraries.h" #include "yacreader_local_server.h" +#include "libraries_updater.h" + #include "console_ui_library_creator.h" #include @@ -136,6 +138,10 @@ int main( int argc, char ** argv ) } QLOG_INFO() << "YACReaderLibrary starting"; + //Update libraries to now versions + LibrariesUpdater updater; + updater.updateIfNeeded(); + YACReaderLocalServer * localServer = new YACReaderLocalServer(); int ret = app.exec();