summaryrefslogtreecommitdiffstats
path: root/src/sdk/commandlineinterface.cpp
diff options
context:
space:
mode:
authorKatja Marttila <katja.marttila@qt.io>2020-03-12 15:07:09 +0200
committerKatja Marttila <katja.marttila@qt.io>2020-03-20 15:20:32 +0200
commit4d7c5d092e95f2eb2113780971027e0adfa41440 (patch)
tree4f1ef3c430ac5ea93c15afab3769221165b19a1c /src/sdk/commandlineinterface.cpp
parent559a6b4ed5b23fee084929f9f62fabe223294f49 (diff)
Separate maintenance tool writing for testing purpose
Some unit tests wont work as installer wants to unpack maintenance tool from the installer. As unit tests are not normal installers we need to separate the maintenance unpacking when running tests. Change-Id: I5f2bb60e775a42d1b8dd6ee088ff4f2a694a7a09 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Diffstat (limited to 'src/sdk/commandlineinterface.cpp')
-rw-r--r--src/sdk/commandlineinterface.cpp45
1 files changed, 32 insertions, 13 deletions
diff --git a/src/sdk/commandlineinterface.cpp b/src/sdk/commandlineinterface.cpp
index 17e7be6e5..de9332b35 100644
--- a/src/sdk/commandlineinterface.cpp
+++ b/src/sdk/commandlineinterface.cpp
@@ -33,6 +33,7 @@
#include <packagemanagercore.h>
#include <globals.h>
#include <productkeycheck.h>
+#include <errors.h>
#include <QDir>
#include <QDomDocument>
@@ -139,26 +140,38 @@ int CommandLineInterface::updatePackages()
}
if (!checkLicense())
return EXIT_FAILURE;
- m_core->updateComponentsSilently(m_positionalArguments);
- return EXIT_SUCCESS;
+ try {
+ if (m_core->updateComponentsSilently(m_positionalArguments))
+ m_core->writeMaintenanceTool();
+ return EXIT_SUCCESS;
+ } catch (const QInstaller::Error &err) {
+ qCCritical(QInstaller::lcInstallerInstallLog) << err.message();
+ return EXIT_FAILURE;
+ }
}
int CommandLineInterface::installPackages()
{
if (!initialize() || (m_core->isInstaller() && !setTargetDir()) || !checkLicense())
return EXIT_FAILURE;
- if (m_positionalArguments.isEmpty()) {
- if (!m_core->isInstaller()) {
- qCWarning(QInstaller::lcInstallerInstallLog)
- << "Cannot perform default installation with maintenance tool.";
- return EXIT_FAILURE;
+ try {
+ if (m_positionalArguments.isEmpty()) {
+ if (!m_core->isInstaller()) {
+ qCWarning(QInstaller::lcInstallerInstallLog)
+ << "Cannot perform default installation with maintenance tool.";
+ return EXIT_FAILURE;
+ }
+ // No packages provided, install default components
+ if (m_core->installDefaultComponentsSilently())
+ m_core->writeMaintenanceTool();
+ } else if (m_core->installSelectedComponentsSilently(m_positionalArguments)) {
+ m_core->writeMaintenanceTool();
}
- // No packages provided, install default components
- m_core->installDefaultComponentsSilently();
return EXIT_SUCCESS;
+ } catch (const QInstaller::Error &err) {
+ qCCritical(QInstaller::lcInstallerInstallLog) << err.message();
+ return EXIT_FAILURE;
}
- m_core->installSelectedComponentsSilently(m_positionalArguments);
- return EXIT_SUCCESS;
}
int CommandLineInterface::uninstallPackages()
@@ -170,8 +183,14 @@ int CommandLineInterface::uninstallPackages()
return EXIT_FAILURE;
}
m_core->setPackageManager();
- m_core->uninstallComponentsSilently(m_positionalArguments);
- return EXIT_SUCCESS;
+ try {
+ if (m_core->uninstallComponentsSilently(m_positionalArguments))
+ m_core->writeMaintenanceTool();
+ return EXIT_SUCCESS;
+ } catch (const QInstaller::Error &err) {
+ qCCritical(QInstaller::lcInstallerInstallLog) << err.message();
+ return EXIT_FAILURE;
+ }
}
bool CommandLineInterface::checkLicense()