CQtDeployer/Deploy/deploy.cpp
EndrII ee5c18f121 update copyrigh
update zip lib
update QuasarApp lib
2021-01-05 13:17:11 +03:00

112 lines
2.1 KiB
C++

/*
* Copyright (C) 2018-2021 QuasarApp.
* Distributed under the lgplv3 software license, see the accompanying
* Everyone is permitted to copy and distribute verbatim copies
* of this license document, but changing it is not allowed.
*/
#include "configparser.h"
#include "deploy.h"
#include "extracter.h"
#include "filemanager.h"
#include "packing.h"
#include "pluginsparser.h"
#include <quasarapp.h>
Deploy::Deploy() {
_fileManager = new FileManager();
_scaner = new DependenciesScanner();
_packing = new Packing(_fileManager);
_pluginParser = new PluginsParser();
_paramsParser = new ConfigParser(_fileManager, _pluginParser, _scaner, _packing);
}
int Deploy::run() {
if (!prepare()) {
return PrepareError;
}
_fileManager->loadDeployemendFiles(_paramsParser->config()->getTargetDir());
if (!deploy()) {
return DeployError;
}
if (!packing()) {
_fileManager->saveDeploymendFiles(_paramsParser->config()->getTargetDir());
return PackingError;
}
_fileManager->saveDeploymendFiles(_paramsParser->config()->getTargetDir());
return Good;
}
Deploy::~Deploy() {
if (_extracter) {
delete _extracter;
}
if (_paramsParser) {
delete _paramsParser;
}
if (_fileManager) {
delete _fileManager;
}
if (_scaner) {
delete _scaner;
}
if (_packing) {
delete _packing;
}
if (_pluginParser) {
delete _pluginParser;
}
DeployCore::_config = nullptr;
}
bool Deploy::prepare() {
if ( !_paramsParser->parseParams()) {
return false;
}
_extracter = new Extracter(_fileManager, _pluginParser, _paramsParser, _scaner);
return true;
}
bool Deploy::deploy() {
switch (DeployCore::getMode() ) {
case RunMode::Deploy:
_extracter->deploy();
break;
case RunMode::Clear:
_extracter->clear();
break;
default:
break;
}
return true;
}
bool Deploy::packing() {
if (DeployCore::getMode() != RunMode::Deploy)
return true;
return _packing->create();
}