CQtDeployer/Deploy/Distributions/idistribution.h

56 lines
1.5 KiB
C
Raw Normal View History

2019-11-28 18:13:56 +03:00
#ifndef IDISTRIBUTION_H
#define IDISTRIBUTION_H
#include "distrostruct.h"
#include "envirement.h"
2020-01-13 18:25:03 +03:00
#include "templateinfo.h"
2020-01-16 11:10:16 +03:00
#include <QProcess>
2019-11-28 18:13:56 +03:00
2020-01-14 15:48:35 +03:00
#include <QFileInfo>
2020-01-15 18:31:09 +03:00
class FileManager;
2020-01-18 20:01:14 +03:00
class DistroModule;
2020-01-14 15:48:35 +03:00
2019-11-28 18:13:56 +03:00
class DEPLOYSHARED_EXPORT iDistribution
{
public:
2020-01-15 18:31:09 +03:00
iDistribution(FileManager * fileManager);
2019-11-28 18:13:56 +03:00
virtual ~iDistribution();
virtual QString getConfig() const = 0;
2020-01-16 15:25:36 +03:00
virtual bool deployTemplate() = 0;
2020-01-15 11:50:30 +03:00
virtual bool removeTemplate() const = 0;
2020-01-16 11:10:16 +03:00
virtual Envirement toolKitEnv() const = 0;
virtual QProcessEnvironment processEnvirement() const = 0;
virtual QString runCmd() = 0;
virtual QStringList runArg() const = 0;
QString getClassName() const;
protected:
QString getLocation() const;
void setLocation(const QString &location);
2020-01-14 15:48:35 +03:00
bool unpackFile(const QFileInfo& resource,
const QString& target,
2020-01-19 13:26:47 +03:00
const TemplateInfo& info,
const QStringList &sufixes) const;
2020-01-14 15:48:35 +03:00
bool unpackDir(const QString& resource,
const QString& target,
2020-01-19 13:26:47 +03:00
const TemplateInfo& info,
const QStringList &sufixes) const;
2020-01-18 20:01:14 +03:00
bool moveData(const QString& from, const QString& to, const QString &ignore) const;
2020-01-16 15:25:36 +03:00
bool copyFile(const QString& from, const QString& to) const;
2020-01-15 18:31:09 +03:00
2020-01-27 20:02:25 +03:00
QMap<int, QPair<QString, const DistroModule *>> sortPackages(const QHash<QString, DistroModule> &input);
private:
2020-01-19 13:26:47 +03:00
2020-01-18 20:01:14 +03:00
QString _location = "Temp Template";
2020-01-15 18:31:09 +03:00
FileManager * _fileManager = nullptr;
2019-11-28 18:13:56 +03:00
};
#endif // IDISTRIBUTION_H