CQtDeployer/Deploy/envirement.cpp

123 lines
2.7 KiB
C++
Raw Normal View History

2019-09-23 16:46:57 +03:00
//#
2019-12-08 13:57:20 +03:00
//# Copyright (C) 2018-2020 QuasarApp.
2019-09-23 16:46:57 +03:00
//# 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.
//#
2019-09-07 12:01:20 +03:00
#include "envirement.h"
2019-12-20 17:25:20 +03:00
#include "pathutils.h"
2019-09-07 12:36:20 +03:00
#include "quasarapp.h"
#include <QDir>
#include <QFileInfo>
2019-09-07 12:01:20 +03:00
2019-12-20 17:25:20 +03:00
QSet<QString> Envirement::upper(const QSet<QString>& set) const {
QSet<QString> res;
for (auto &i : set) {
res.insert(PathUtils::fixPath(i));
}
return res;
}
2019-09-07 12:01:20 +03:00
QStringList Envirement::deployEnvironment() const
{
2019-09-14 15:51:23 +03:00
return _deployEnvironment.toList();
2019-09-07 12:01:20 +03:00
}
QStringList Envirement::ignoreEnvList() const
{
2019-09-14 15:51:23 +03:00
return _ignoreEnvList.toList();
2019-09-07 12:01:20 +03:00
}
void Envirement::setIgnoreEnvList(const QStringList &ignoreEnvList)
{
2019-12-20 17:25:20 +03:00
_ignoreEnvList = upper(ignoreEnvList.toSet());
2019-09-07 12:01:20 +03:00
}
2019-09-07 12:36:20 +03:00
void Envirement::addEnv(const QString &dir, const QString &appDir, const QString& targetDir) {
char separator = ':';
#ifdef Q_OS_WIN
separator = ';';
#endif
if (dir.contains(separator)) {
auto list = dir.split(separator);
for (auto i : list) {
addEnv(i, appDir, targetDir);
}
return;
}
auto path = QFileInfo(dir).absoluteFilePath();
2019-09-14 15:51:23 +03:00
for (QString i :_ignoreEnvList) {
2019-12-20 17:25:20 +03:00
if (path.contains(i, ONLY_WIN_CASE_INSENSIATIVE)) {
2019-09-07 12:36:20 +03:00
return;
}
}
2019-09-23 10:06:22 +03:00
if (!appDir.isEmpty() && path.contains(appDir)) {
2019-09-07 12:36:20 +03:00
QuasarAppUtils::Params::verboseLog("is cqtdeployer dir!: " + path + " app dir : " + appDir);
return;
}
if (!QFileInfo(path).isDir()) {
QuasarAppUtils::Params::verboseLog("is not dir!! :" + path);
return;
}
if (_deployEnvironment.contains(path)) {
QuasarAppUtils::Params::verboseLog ("Environment alredy added: " + path);
return;
}
2019-09-23 10:06:22 +03:00
if (!targetDir.isEmpty() && path.contains(targetDir)) {
2019-09-07 12:36:20 +03:00
QuasarAppUtils::Params::verboseLog ("Skip paths becouse it is target : " + path);
return;
}
2019-12-20 17:25:20 +03:00
_deployEnvironment.insert(PathUtils::fixPath(QDir::fromNativeSeparators(path)));
2019-09-07 12:36:20 +03:00
}
2019-09-22 21:55:04 +03:00
bool Envirement::inThisEnvirement(const QString &file) const {
2019-09-23 10:06:22 +03:00
QFileInfo info (file);
2019-09-23 10:06:22 +03:00
if (info.isFile()) {
2019-12-20 17:25:20 +03:00
return _deployEnvironment.contains(PathUtils::fixPath(info.absolutePath()));
2019-09-23 10:06:22 +03:00
}
2019-12-20 17:25:20 +03:00
return _deployEnvironment.contains(PathUtils::fixPath(file));
2019-09-23 10:06:22 +03:00
2019-09-22 21:55:04 +03:00
}
2019-09-07 12:36:20 +03:00
int Envirement::size() const {
return _deployEnvironment.size();
}
2019-09-08 13:37:33 +03:00
QString Envirement::concatEnv() const {
if (_deployEnvironment.isEmpty()) {
return "";
}
2019-09-14 15:51:23 +03:00
QString result = *_deployEnvironment.begin();
2019-09-08 13:37:33 +03:00
for (auto i: _deployEnvironment) {
#ifdef Q_OS_UNIX
result += (":" + i);
#else
result += (";" + i);
#endif
}
return result;
}
2019-09-07 12:01:20 +03:00
Envirement::Envirement()
{
}