mirror of
https://github.com/QuasarApp/CQtDeployer.git
synced 2025-04-27 10:14:32 +00:00
112 lines
2.1 KiB
C++
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();
|
|
}
|