mirror of
https://github.com/QuasarApp/CQtDeployer.git
synced 2025-04-28 02:34:34 +00:00
fix default implementatin and adde base implementation if qif
This commit is contained in:
parent
b853101704
commit
5ddc930d5a
@ -11,7 +11,7 @@ QString DefaultDistro::getConfig() const{
|
|||||||
return ":/Distro/Distributions/configures/C and C++.json";
|
return ":/Distro/Distributions/configures/C and C++.json";
|
||||||
}
|
}
|
||||||
|
|
||||||
void DefaultDistro::deployDefaultTemplate() const {}
|
void DefaultDistro::deployTemplate() const {}
|
||||||
|
|
||||||
Envirement DefaultDistro::toolKitLocation() const {
|
Envirement DefaultDistro::toolKitLocation() const {
|
||||||
return {};
|
return {};
|
||||||
|
@ -11,7 +11,7 @@ public:
|
|||||||
// iDistribution interface
|
// iDistribution interface
|
||||||
public:
|
public:
|
||||||
QString getConfig() const;
|
QString getConfig() const;
|
||||||
void deployDefaultTemplate() const;
|
void deployTemplate() const;
|
||||||
Envirement toolKitLocation() const;
|
Envirement toolKitLocation() const;
|
||||||
QString runCmd() const;
|
QString runCmd() const;
|
||||||
QStringList runArg() const;
|
QStringList runArg() const;
|
||||||
|
@ -11,7 +11,7 @@ public:
|
|||||||
virtual ~iDistribution();
|
virtual ~iDistribution();
|
||||||
|
|
||||||
virtual QString getConfig() const = 0;
|
virtual QString getConfig() const = 0;
|
||||||
virtual void deployDefaultTemplate() const = 0;
|
virtual void deployTemplate() const = 0;
|
||||||
virtual Envirement toolKitLocation() const = 0;
|
virtual Envirement toolKitLocation() const = 0;
|
||||||
virtual QString runCmd() const = 0;
|
virtual QString runCmd() const = 0;
|
||||||
virtual QStringList runArg() const = 0;
|
virtual QStringList runArg() const = 0;
|
||||||
|
@ -1,27 +1,40 @@
|
|||||||
#include "qif.h"
|
#include "qif.h"
|
||||||
|
#include "quasarapp.h"
|
||||||
|
|
||||||
QIF::QIF(){}
|
QIF::QIF(){}
|
||||||
|
|
||||||
Envirement QIF::toolKitLocation() const {
|
Envirement QIF::toolKitLocation() const {
|
||||||
|
// SNAP
|
||||||
|
Envirement result;
|
||||||
|
|
||||||
|
QString AppPath = QuasarAppUtils::Params::getStrArg("appPath", "");
|
||||||
|
result.addEnv(AppPath);
|
||||||
|
|
||||||
|
//Installer
|
||||||
|
result.addEnvRec(AppPath + "../../QIF/", 2);
|
||||||
|
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
QString QIF::getConfig() const {
|
QString QIF::getConfig() const {
|
||||||
|
return ":/Distro/Distributions/configures/QIF.json";
|
||||||
}
|
}
|
||||||
|
|
||||||
QString QIF::runCmd() const {
|
QString QIF::runCmd() const {
|
||||||
return "binarycreator";
|
return "binarycreator";
|
||||||
}
|
}
|
||||||
|
|
||||||
void QIF::deployDefaultTemplate() const {
|
void QIF::deployTemplate() const {
|
||||||
|
auto customTemplate = QuasarAppUtils::Params::getStrArg("qif", "");
|
||||||
|
|
||||||
|
if (customTemplate.size()) {
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
QStringList QIF::runArg() const {
|
QStringList QIF::runArg() const {
|
||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
|
|
||||||
QString QIF::findBinaryCreator() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
@ -14,11 +14,9 @@ public:
|
|||||||
Envirement toolKitLocation() const;
|
Envirement toolKitLocation() const;
|
||||||
QString getConfig() const;
|
QString getConfig() const;
|
||||||
QString runCmd() const;
|
QString runCmd() const;
|
||||||
void deployDefaultTemplate() const;
|
void deployTemplate() const;
|
||||||
QStringList runArg() const;
|
QStringList runArg() const;
|
||||||
|
|
||||||
private:
|
|
||||||
QString findBinaryCreator();
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // QIF_H
|
#endif // QIF_H
|
||||||
|
@ -648,8 +648,8 @@ void ConfigParser::initIgnoreList()
|
|||||||
|
|
||||||
if (!QuasarAppUtils::Params::isEndable("deploySystem-with-libc")) {
|
if (!QuasarAppUtils::Params::isEndable("deploySystem-with-libc")) {
|
||||||
|
|
||||||
envUnix.addEnv(recursiveInvairement("/lib", 3), "", "");
|
envUnix.addEnv(Envirement::recursiveInvairement("/lib", 3), "", "");
|
||||||
envUnix.addEnv(recursiveInvairement("/usr/lib", 3), "", "");
|
envUnix.addEnv(Envirement::recursiveInvairement("/usr/lib", 3), "", "");
|
||||||
ruleUnix.prority = SystemLib;
|
ruleUnix.prority = SystemLib;
|
||||||
ruleUnix.platform = Unix;
|
ruleUnix.platform = Unix;
|
||||||
ruleUnix.enfirement = envUnix;
|
ruleUnix.enfirement = envUnix;
|
||||||
@ -683,8 +683,8 @@ void ConfigParser::initIgnoreList()
|
|||||||
auto path = env.value("PATH");
|
auto path = env.value("PATH");
|
||||||
auto winPath = findWindowsPath(path);
|
auto winPath = findWindowsPath(path);
|
||||||
|
|
||||||
envWin.addEnv(recursiveInvairement(winPath + "/System32", 2), "", "");
|
envWin.addEnv(Envirement::recursiveInvairement(winPath + "/System32", 2), "", "");
|
||||||
envWin.addEnv(recursiveInvairement(winPath + "/SysWOW64", 2), "", "");
|
envWin.addEnv(Envirement::recursiveInvairement(winPath + "/SysWOW64", 2), "", "");
|
||||||
|
|
||||||
ruleWin.prority = SystemLib;
|
ruleWin.prority = SystemLib;
|
||||||
ruleWin.platform = Win;
|
ruleWin.platform = Win;
|
||||||
@ -941,7 +941,9 @@ void ConfigParser::setExtraPath(const QStringList &value) {
|
|||||||
auto extraDirs = getSetDirsRecursive(QDir::fromNativeSeparators(info.absoluteFilePath()), _config.depchLimit);
|
auto extraDirs = getSetDirsRecursive(QDir::fromNativeSeparators(info.absoluteFilePath()), _config.depchLimit);
|
||||||
_config.extraPaths.addExtraPaths(extraDirs);
|
_config.extraPaths.addExtraPaths(extraDirs);
|
||||||
|
|
||||||
_config.envirement.addEnv(recursiveInvairement(dir), _config.appDir, _config.getTargetDir());
|
_config.envirement.addEnv(Envirement::recursiveInvairement(dir, 0, _config.depchLimit),
|
||||||
|
_config.appDir,
|
||||||
|
_config.getTargetDir());
|
||||||
} else if (i.size() > 1) {
|
} else if (i.size() > 1) {
|
||||||
|
|
||||||
_config.extraPaths.addExtraPathsMasks({i});
|
_config.extraPaths.addExtraPathsMasks({i});
|
||||||
@ -979,46 +981,6 @@ void ConfigParser::setExtraPlugins(const QStringList &value) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
QString ConfigParser::recursiveInvairement(QDir &dir, int depch, int depchLimit ) {
|
|
||||||
|
|
||||||
char separator = ':';
|
|
||||||
|
|
||||||
#ifdef Q_OS_WIN
|
|
||||||
separator = ';';
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if (depchLimit < 0) {
|
|
||||||
depchLimit = _config.depchLimit;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!dir.exists() || depch >= depchLimit) {
|
|
||||||
return dir.absolutePath();
|
|
||||||
}
|
|
||||||
|
|
||||||
QFileInfoList list = dir.entryInfoList(QDir::Dirs | QDir::NoDotAndDotDot);
|
|
||||||
QString res = "";
|
|
||||||
|
|
||||||
for (QFileInfo &i : list) {
|
|
||||||
if (!dir.cd(i.fileName())) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
QString temp = recursiveInvairement(dir, depch + 1);
|
|
||||||
res += (res.size())? separator + temp: temp;
|
|
||||||
|
|
||||||
dir.cdUp();
|
|
||||||
}
|
|
||||||
|
|
||||||
res += (res.size())? separator + dir.absolutePath(): dir.absolutePath();
|
|
||||||
|
|
||||||
return res;
|
|
||||||
}
|
|
||||||
|
|
||||||
QString ConfigParser::recursiveInvairement(const QString &dir, int depch) {
|
|
||||||
QDir _dir(dir);
|
|
||||||
|
|
||||||
return recursiveInvairement(_dir, 0, depch);
|
|
||||||
}
|
|
||||||
|
|
||||||
QString ConfigParser::findWindowsPath(const QString& path) const {
|
QString ConfigParser::findWindowsPath(const QString& path) const {
|
||||||
auto list = path.split(';');
|
auto list = path.split(';');
|
||||||
QString win_magic = "windows";
|
QString win_magic = "windows";
|
||||||
@ -1046,7 +1008,7 @@ bool ConfigParser::configureDistribution(iDistribution *distro) {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
distro->deployDefaultTemplate();
|
distro->deployTemplate();
|
||||||
|
|
||||||
_packing->setDistribution(distro);
|
_packing->setDistribution(distro);
|
||||||
|
|
||||||
|
@ -70,9 +70,6 @@ private:
|
|||||||
|
|
||||||
void setExtraPlugins(const QStringList &value);
|
void setExtraPlugins(const QStringList &value);
|
||||||
|
|
||||||
QString recursiveInvairement(QDir &dir, int depch = 0, int depchLimit = -1);
|
|
||||||
QString recursiveInvairement(const QString &dir, int depch);
|
|
||||||
|
|
||||||
void initEnvirement();
|
void initEnvirement();
|
||||||
|
|
||||||
QStringList getDirsRecursive(const QString &path, int maxDepch = -1, int depch = 0);
|
QStringList getDirsRecursive(const QString &path, int maxDepch = -1, int depch = 0);
|
||||||
|
@ -20,21 +20,22 @@ QSet<QString> Envirement::upper(const QSet<QString>& set) const {
|
|||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
QStringList Envirement::deployEnvironment() const
|
QStringList Envirement::deployEnvironment() const {
|
||||||
{
|
|
||||||
return _deployEnvironment.toList();
|
return _deployEnvironment.toList();
|
||||||
}
|
}
|
||||||
|
|
||||||
QStringList Envirement::ignoreEnvList() const
|
QStringList Envirement::ignoreEnvList() const {
|
||||||
{
|
|
||||||
return _ignoreEnvList.toList();
|
return _ignoreEnvList.toList();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Envirement::setIgnoreEnvList(const QStringList &ignoreEnvList)
|
void Envirement::setIgnoreEnvList(const QStringList &ignoreEnvList) {
|
||||||
{
|
|
||||||
_ignoreEnvList = upper(ignoreEnvList.toSet());
|
_ignoreEnvList = upper(ignoreEnvList.toSet());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Envirement::addEnvRec(const QString &dir, int depch, const QString &appDir, const QString &targetDir) {
|
||||||
|
addEnv(Envirement::recursiveInvairement(dir, depch), appDir, targetDir);
|
||||||
|
}
|
||||||
|
|
||||||
void Envirement::addEnv(const QString &dir, const QString &appDir, const QString& targetDir) {
|
void Envirement::addEnv(const QString &dir, const QString &appDir, const QString& targetDir) {
|
||||||
|
|
||||||
char separator = ':';
|
char separator = ':';
|
||||||
@ -116,6 +117,42 @@ QString Envirement::concatEnv() const {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QString Envirement::recursiveInvairement(QDir &dir, int depch, int depchLimit) {
|
||||||
|
|
||||||
|
char separator = ':';
|
||||||
|
|
||||||
|
#ifdef Q_OS_WIN
|
||||||
|
separator = ';';
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if (!dir.exists() || (depchLimit >= 0 && depch >= depchLimit)) {
|
||||||
|
return dir.absolutePath();
|
||||||
|
}
|
||||||
|
|
||||||
|
QFileInfoList list = dir.entryInfoList(QDir::Dirs | QDir::NoDotAndDotDot);
|
||||||
|
QString res = "";
|
||||||
|
|
||||||
|
for (QFileInfo &i : list) {
|
||||||
|
if (!dir.cd(i.fileName())) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
QString temp = Envirement::recursiveInvairement(dir, depch + 1, depchLimit);
|
||||||
|
res += (res.size())? separator + temp: temp;
|
||||||
|
|
||||||
|
dir.cdUp();
|
||||||
|
}
|
||||||
|
|
||||||
|
res += (res.size())? separator + dir.absolutePath(): dir.absolutePath();
|
||||||
|
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
QString Envirement::recursiveInvairement(const QString &dir, int depch) {
|
||||||
|
QDir _dir(dir);
|
||||||
|
|
||||||
|
return recursiveInvairement(_dir, 0, depch);
|
||||||
|
}
|
||||||
|
|
||||||
Envirement::Envirement()
|
Envirement::Envirement()
|
||||||
{
|
{
|
||||||
|
|
||||||
|
@ -12,6 +12,8 @@
|
|||||||
#include <QStringList>
|
#include <QStringList>
|
||||||
#include "deploy_global.h"
|
#include "deploy_global.h"
|
||||||
|
|
||||||
|
class QDir;
|
||||||
|
|
||||||
class DEPLOYSHARED_EXPORT Envirement
|
class DEPLOYSHARED_EXPORT Envirement
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
@ -25,12 +27,17 @@ public:
|
|||||||
QStringList ignoreEnvList() const;
|
QStringList ignoreEnvList() const;
|
||||||
void setIgnoreEnvList(const QStringList &ignoreEnvList);
|
void setIgnoreEnvList(const QStringList &ignoreEnvList);
|
||||||
|
|
||||||
|
void addEnvRec(const QString &dir, int depch, const QString &appDir = "", const QString &targetDir = "");
|
||||||
|
|
||||||
void addEnv(const QString &dir, const QString &appDir = "", const QString &targetDir = "");
|
void addEnv(const QString &dir, const QString &appDir = "", const QString &targetDir = "");
|
||||||
// return true if file exits in this envirement
|
// return true if file exits in this envirement
|
||||||
bool inThisEnvirement(const QString &file) const;
|
bool inThisEnvirement(const QString &file) const;
|
||||||
|
|
||||||
int size() const;
|
int size() const;
|
||||||
QString concatEnv() const;
|
QString concatEnv() const;
|
||||||
|
|
||||||
|
static QString recursiveInvairement(QDir &dir, int depch, int depchLimit = -1);
|
||||||
|
static QString recursiveInvairement(const QString &dir, int depch = -1);
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // ENVIREMENT_H
|
#endif // ENVIREMENT_H
|
||||||
|
@ -10,7 +10,7 @@ Packing::Packing() {
|
|||||||
connect(_proc, &QProcess::readyReadStandardError,
|
connect(_proc, &QProcess::readyReadStandardError,
|
||||||
this, &Packing::handleOutputUpdate, Qt::QueuedConnection);
|
this, &Packing::handleOutputUpdate, Qt::QueuedConnection);
|
||||||
|
|
||||||
connect(_proc, &QProcess::readAllStandardOutput,
|
connect(_proc, &QProcess::readyReadStandardOutput,
|
||||||
this, &Packing::handleOutputUpdate, Qt::QueuedConnection);
|
this, &Packing::handleOutputUpdate, Qt::QueuedConnection);
|
||||||
|
|
||||||
moveToThread( new QThread(this));
|
moveToThread( new QThread(this));
|
||||||
@ -55,8 +55,8 @@ bool Packing::create() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void Packing::handleOutputUpdate() {
|
void Packing::handleOutputUpdate() {
|
||||||
auto stdout = _proc->readAllStandardOutput();
|
QString stdout = _proc->readAllStandardOutput();
|
||||||
auto errout = _proc->readAllStandardError();
|
QString errout = _proc->readAllStandardError();
|
||||||
|
|
||||||
if (stdout.size())
|
if (stdout.size())
|
||||||
qInfo() << stdout;
|
qInfo() << stdout;
|
||||||
|
@ -24,7 +24,7 @@ public:
|
|||||||
bool create();
|
bool create();
|
||||||
private:
|
private:
|
||||||
iDistribution *_pakage = nullptr;
|
iDistribution *_pakage = nullptr;
|
||||||
QProcess *_proc;
|
QProcess *_proc = nullptr;
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void handleOutputUpdate();
|
void handleOutputUpdate();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user