summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTim Jenssen <tim.jenssen@nokia.com>2012-03-30 13:44:01 +0200
committerTim Jenssen <tim.jenssen@nokia.com>2012-03-30 14:40:05 +0200
commit66db6e0a4dba5614572f02e3a9b6913d2487ca8b (patch)
treeaaeaa7b25a354ecfb6774a0ff27db36a0fd16c65
parentc4b346aeb298b7dbd74e575843328b78fd00996c (diff)
binarycreator shouldn't exit with error code if it can't clean up correctly
- in case there is something but ignoreErrors==true it is showing a warning message Change-Id: I9c09a310960a56432975757496984bbe36fe5028 Reviewed-by: Niels Weber <niels.2.weber@nokia.com> Reviewed-by: Oliver Wolff <oliver.wolff@nokia.com>
-rw-r--r--src/libs/installer/fileutils.cpp19
-rw-r--r--tools/binarycreator/binarycreator.cpp2
2 files changed, 16 insertions, 5 deletions
diff --git a/src/libs/installer/fileutils.cpp b/src/libs/installer/fileutils.cpp
index ece86aa5d..29baf4765 100644
--- a/src/libs/installer/fileutils.cpp
+++ b/src/libs/installer/fileutils.cpp
@@ -234,8 +234,13 @@ void QInstaller::removeFiles(const QString &path, bool ignoreErrors)
foreach (const QFileInfo &fi, entries) {
if (fi.isSymLink() || fi.isFile()) {
QFile f(fi.filePath());
- if (!f.remove() && !ignoreErrors)
- throw Error(QObject::tr("Could not remove file %1: %2").arg(f.fileName(), f.errorString()));
+ if (!f.remove()) {
+ QString errorMessage = QObject::tr("Could not remove file %1: %2").arg(f.fileName(), f.errorString());
+ if (ignoreErrors)
+ qWarning() << errorMessage;
+ else
+ throw Error(errorMessage);
+ }
}
}
}
@@ -259,8 +264,14 @@ void QInstaller::removeDirectory(const QString &path, bool ignoreErrors)
removeFiles(path, ignoreErrors);
foreach (const QString &dir, dirs) {
errno = 0;
- if (d.exists(path) && !d.rmdir(dir) && !ignoreErrors)
- throw Error(QObject::tr("Could not remove folder %1: %2").arg(dir, QLatin1String(strerror(errno))));
+ if (d.exists(path) && !d.rmdir(dir)) {
+ QString errorMessage = QObject::tr("Could not remove folder %1: %2").arg(dir,
+ QLatin1String(strerror(errno)));
+ if (ignoreErrors)
+ qWarning() << errorMessage;
+ else
+ throw Error(errorMessage);
+ }
}
}
diff --git a/tools/binarycreator/binarycreator.cpp b/tools/binarycreator/binarycreator.cpp
index aa64bf985..866b4a4a3 100644
--- a/tools/binarycreator/binarycreator.cpp
+++ b/tools/binarycreator/binarycreator.cpp
@@ -696,7 +696,7 @@ int main(int argc, char **argv)
foreach (const QString &resource, input.binaryResources)
QFile::remove(resource);
}
- removeDirectory(metaDir);
+ removeDirectory(metaDir, true);
return result;
} catch (const Error &e) {
std::cerr << e.message() << std::endl;