forked from qt-creator/qt-creator
Maemo: Improve clean-up behaviour on remote hosts.
We now remove files we have created on the device because they are temporarily needed. This includes package files, mount points and pipes. Task-number: QTCREATORBUG-2709
This commit is contained in:
@@ -99,7 +99,8 @@ void RemoteGdbProcess::handleFifoCreationFinished(int exitStatus)
|
||||
if (exitStatus != SshRemoteProcess::ExitedNormally) {
|
||||
emitErrorExit(tr("Could not create FIFO."));
|
||||
} else {
|
||||
m_appOutputReader = m_conn->createRemoteProcess("cat " + AppOutputFile);
|
||||
m_appOutputReader = m_conn->createRemoteProcess("cat " + AppOutputFile
|
||||
+ " && rm -f " + AppOutputFile);
|
||||
connect(m_appOutputReader.data(), SIGNAL(started()), this,
|
||||
SLOT(handleAppOutputReaderStarted()));
|
||||
connect(m_appOutputReader.data(), SIGNAL(closed(int)), this,
|
||||
|
||||
@@ -387,7 +387,7 @@ void MaemoDeployStep::handleSftpJobFinished(Core::SftpJobId,
|
||||
.arg(filePathNative));
|
||||
const QString remoteFilePath
|
||||
= uploadDir() + QLatin1Char('/') + QFileInfo(filePathNative).fileName();
|
||||
runDpkg(remoteFilePath);
|
||||
runDpkg(remoteFilePath, true);
|
||||
}
|
||||
|
||||
void MaemoDeployStep::handleMounted()
|
||||
@@ -400,7 +400,7 @@ void MaemoDeployStep::handleMounted()
|
||||
if (m_needsInstall) {
|
||||
const QString remoteFilePath = deployMountPoint() + QLatin1Char('/')
|
||||
+ QFileInfo(packagingStep()->packageFilePath()).fileName();
|
||||
runDpkg(remoteFilePath);
|
||||
runDpkg(remoteFilePath, false);
|
||||
} else {
|
||||
copyNextFileToDevice();
|
||||
}
|
||||
@@ -605,11 +605,14 @@ void MaemoDeployStep::unmountOldDirs()
|
||||
m_mounter->unmount();
|
||||
}
|
||||
|
||||
void MaemoDeployStep::runDpkg(const QString &packageFilePath)
|
||||
void MaemoDeployStep::runDpkg(const QString &packageFilePath,
|
||||
bool removeAfterInstall)
|
||||
{
|
||||
writeOutput(tr("Installing package to device..."));
|
||||
const QByteArray cmd = MaemoGlobal::remoteSudo().toUtf8() + " dpkg -i "
|
||||
QByteArray cmd = MaemoGlobal::remoteSudo().toUtf8() + " dpkg -i "
|
||||
+ packageFilePath.toUtf8();
|
||||
if (removeAfterInstall)
|
||||
cmd += " && rm " + packageFilePath.toUtf8() + " || :";
|
||||
m_deviceInstaller = m_connection->createRemoteProcess(cmd);
|
||||
connect(m_deviceInstaller.data(), SIGNAL(closed(int)), this,
|
||||
SLOT(handleInstallationFinished(int)));
|
||||
|
||||
@@ -134,7 +134,7 @@ private:
|
||||
void unmountOldDirs();
|
||||
void setupMount();
|
||||
void prepareSftpConnection();
|
||||
void runDpkg(const QString &packageFilePath);
|
||||
void runDpkg(const QString &packageFilePath, bool removeAfterInstall);
|
||||
|
||||
static const QLatin1String Id;
|
||||
|
||||
|
||||
@@ -113,7 +113,7 @@ void MaemoRemoteMounter::unmount()
|
||||
|
||||
QString remoteCall;
|
||||
for (int i = 0; i < m_mountSpecs.count(); ++i) {
|
||||
remoteCall += QString::fromLocal8Bit("%1 umount %2;")
|
||||
remoteCall += QString::fromLocal8Bit("%1 umount %2 && %1 rmdir %2;")
|
||||
.arg(MaemoGlobal::remoteSudo(),
|
||||
m_mountSpecs.at(i).mountSpec.remoteMountPoint);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user