forked from qt-creator/qt-creator
FileTransfer: Add some static helpers
Change-Id: Ie22e7ecce52b308df32316ff85d4744bd26060b0 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
@@ -71,10 +71,15 @@ public:
|
|||||||
void setFilesToTransfer(const FilesToTransfer &files);
|
void setFilesToTransfer(const FilesToTransfer &files);
|
||||||
void setRsyncFlags(const QString &flags);
|
void setRsyncFlags(const QString &flags);
|
||||||
|
|
||||||
|
FileTransferMethod transferMethod() const;
|
||||||
|
|
||||||
void test();
|
void test();
|
||||||
void start();
|
void start();
|
||||||
void stop();
|
void stop();
|
||||||
|
|
||||||
|
static QString transferMethodName(FileTransferMethod method);
|
||||||
|
static QString defaultRsyncFlags();
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void progress(const QString &progressMessage);
|
void progress(const QString &progressMessage);
|
||||||
void done(const Utils::ProcessResultData &resultData);
|
void done(const Utils::ProcessResultData &resultData);
|
||||||
|
@@ -1459,16 +1459,6 @@ static QByteArray transferCommand(const TransferDirection transferDirection, boo
|
|||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
|
|
||||||
static QString methodName(FileTransferMethod method)
|
|
||||||
{
|
|
||||||
switch (method) {
|
|
||||||
case FileTransferMethod::Sftp: return FileTransfer::tr("sftp"); break;
|
|
||||||
case FileTransferMethod::Rsync: return FileTransfer::tr("rsync"); break;
|
|
||||||
}
|
|
||||||
QTC_CHECK(false);
|
|
||||||
return {};
|
|
||||||
}
|
|
||||||
|
|
||||||
class FileTransferInterface : public QObject
|
class FileTransferInterface : public QObject
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
@@ -1508,9 +1498,10 @@ protected:
|
|||||||
ProcessResultData resultData = m_process.resultData();
|
ProcessResultData resultData = m_process.resultData();
|
||||||
if (resultData.m_error == QProcess::FailedToStart) {
|
if (resultData.m_error == QProcess::FailedToStart) {
|
||||||
resultData.m_errorString = tr("\"%1\" failed to start: %2")
|
resultData.m_errorString = tr("\"%1\" failed to start: %2")
|
||||||
.arg(methodName(m_method), resultData.m_errorString);
|
.arg(FileTransfer::transferMethodName(m_method), resultData.m_errorString);
|
||||||
} else if (resultData.m_exitStatus != QProcess::NormalExit) {
|
} else if (resultData.m_exitStatus != QProcess::NormalExit) {
|
||||||
resultData.m_errorString = tr("\"%1\" crashed.").arg(methodName(m_method));
|
resultData.m_errorString = tr("\"%1\" crashed.")
|
||||||
|
.arg(FileTransfer::transferMethodName(m_method));
|
||||||
} else if (resultData.m_exitCode != 0) {
|
} else if (resultData.m_exitCode != 0) {
|
||||||
resultData.m_errorString = QString::fromLocal8Bit(m_process.readAllStandardError());
|
resultData.m_errorString = QString::fromLocal8Bit(m_process.readAllStandardError());
|
||||||
} else {
|
} else {
|
||||||
@@ -1705,15 +1696,15 @@ class FileTransferPrivate : public QObject
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
void setDevice(const ProjectExplorer::IDeviceConstPtr &device) { m_device = device; }
|
|
||||||
void setTransferMethod(FileTransferMethod method) { m_method = method; }
|
|
||||||
void setFilesToTransfer(const FilesToTransfer &files) { m_files = files; }
|
|
||||||
void setRsyncFlags(const QString &flags) { m_rsyncFlags = flags; }
|
|
||||||
|
|
||||||
void test() { run(TestRun); }
|
void test() { run(TestRun); }
|
||||||
void start() { run(NormalRun); }
|
void start() { run(NormalRun); }
|
||||||
void stop() { m_transfer.reset(); }
|
void stop() { m_transfer.reset(); }
|
||||||
|
|
||||||
|
FileTransferMethod m_method = FileTransferMethod::Default;
|
||||||
|
IDevice::ConstPtr m_device;
|
||||||
|
FilesToTransfer m_files;
|
||||||
|
QString m_rsyncFlags = FileTransfer::defaultRsyncFlags();
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void progress(const QString &progressMessage);
|
void progress(const QString &progressMessage);
|
||||||
void done(const Utils::ProcessResultData &resultData);
|
void done(const Utils::ProcessResultData &resultData);
|
||||||
@@ -1727,11 +1718,6 @@ private:
|
|||||||
void startFailed(const QString &errorString);
|
void startFailed(const QString &errorString);
|
||||||
void run(RunMode mode);
|
void run(RunMode mode);
|
||||||
|
|
||||||
FileTransferMethod m_method = FileTransferMethod::Default;
|
|
||||||
IDevice::ConstPtr m_device;
|
|
||||||
FilesToTransfer m_files;
|
|
||||||
QString m_rsyncFlags = {"-av"}; // TODO: see RsyncDeployStep::defaultFlags(), reuse it
|
|
||||||
|
|
||||||
std::unique_ptr<FileTransferInterface> m_transfer;
|
std::unique_ptr<FileTransferInterface> m_transfer;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -1792,22 +1778,22 @@ FileTransfer::~FileTransfer()
|
|||||||
|
|
||||||
void FileTransfer::setDevice(const ProjectExplorer::IDeviceConstPtr &device)
|
void FileTransfer::setDevice(const ProjectExplorer::IDeviceConstPtr &device)
|
||||||
{
|
{
|
||||||
d->setDevice(device);
|
d->m_device = device;
|
||||||
}
|
}
|
||||||
|
|
||||||
void FileTransfer::setTransferMethod(FileTransferMethod method)
|
void FileTransfer::setTransferMethod(FileTransferMethod method)
|
||||||
{
|
{
|
||||||
d->setTransferMethod(method);
|
d->m_method = method;
|
||||||
}
|
}
|
||||||
|
|
||||||
void FileTransfer::setFilesToTransfer(const FilesToTransfer &files)
|
void FileTransfer::setFilesToTransfer(const FilesToTransfer &files)
|
||||||
{
|
{
|
||||||
d->setFilesToTransfer(files);
|
d->m_files = files;
|
||||||
}
|
}
|
||||||
|
|
||||||
void FileTransfer::setRsyncFlags(const QString &flags)
|
void FileTransfer::setRsyncFlags(const QString &flags)
|
||||||
{
|
{
|
||||||
d->setRsyncFlags(flags);
|
d->m_rsyncFlags = flags;
|
||||||
}
|
}
|
||||||
|
|
||||||
void FileTransfer::test()
|
void FileTransfer::test()
|
||||||
@@ -1815,6 +1801,11 @@ void FileTransfer::test()
|
|||||||
d->test();
|
d->test();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
FileTransferMethod FileTransfer::transferMethod() const
|
||||||
|
{
|
||||||
|
return d->m_method;
|
||||||
|
}
|
||||||
|
|
||||||
void FileTransfer::start()
|
void FileTransfer::start()
|
||||||
{
|
{
|
||||||
d->start();
|
d->start();
|
||||||
@@ -1825,6 +1816,21 @@ void FileTransfer::stop()
|
|||||||
d->stop();
|
d->stop();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QString FileTransfer::transferMethodName(FileTransferMethod method)
|
||||||
|
{
|
||||||
|
switch (method) {
|
||||||
|
case FileTransferMethod::Sftp: return FileTransfer::tr("sftp");
|
||||||
|
case FileTransferMethod::Rsync: return FileTransfer::tr("rsync");
|
||||||
|
}
|
||||||
|
QTC_CHECK(false);
|
||||||
|
return {};
|
||||||
|
}
|
||||||
|
|
||||||
|
QString FileTransfer::defaultRsyncFlags()
|
||||||
|
{
|
||||||
|
return "-av";
|
||||||
|
}
|
||||||
|
|
||||||
namespace Internal {
|
namespace Internal {
|
||||||
|
|
||||||
// Factory
|
// Factory
|
||||||
|
@@ -155,8 +155,6 @@ void RsyncDeployService::setFinished()
|
|||||||
|
|
||||||
} // namespace Internal
|
} // namespace Internal
|
||||||
|
|
||||||
static const char s_defaultFlags[] = "-av";
|
|
||||||
|
|
||||||
RsyncDeployStep::RsyncDeployStep(BuildStepList *bsl, Utils::Id id)
|
RsyncDeployStep::RsyncDeployStep(BuildStepList *bsl, Utils::Id id)
|
||||||
: AbstractRemoteLinuxDeployStep(bsl, id)
|
: AbstractRemoteLinuxDeployStep(bsl, id)
|
||||||
{
|
{
|
||||||
@@ -166,7 +164,7 @@ RsyncDeployStep::RsyncDeployStep(BuildStepList *bsl, Utils::Id id)
|
|||||||
flags->setDisplayStyle(StringAspect::LineEditDisplay);
|
flags->setDisplayStyle(StringAspect::LineEditDisplay);
|
||||||
flags->setSettingsKey("RemoteLinux.RsyncDeployStep.Flags");
|
flags->setSettingsKey("RemoteLinux.RsyncDeployStep.Flags");
|
||||||
flags->setLabelText(tr("Flags:"));
|
flags->setLabelText(tr("Flags:"));
|
||||||
flags->setValue(s_defaultFlags);
|
flags->setValue(FileTransfer::defaultRsyncFlags());
|
||||||
|
|
||||||
auto ignoreMissingFiles = addAspect<BoolAspect>();
|
auto ignoreMissingFiles = addAspect<BoolAspect>();
|
||||||
ignoreMissingFiles->setSettingsKey("RemoteLinux.RsyncDeployStep.IgnoreMissingFiles");
|
ignoreMissingFiles->setSettingsKey("RemoteLinux.RsyncDeployStep.IgnoreMissingFiles");
|
||||||
|
Reference in New Issue
Block a user