Commit 946cce37 authored by Christian Kandeler's avatar Christian Kandeler
Browse files

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
parent 2a569ce0
......@@ -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);
}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment