diff options
author | Katja Marttila <katja.marttila@qt.io> | 2020-03-12 15:07:09 +0200 |
---|---|---|
committer | Katja Marttila <katja.marttila@qt.io> | 2020-03-20 15:20:32 +0200 |
commit | 4d7c5d092e95f2eb2113780971027e0adfa41440 (patch) | |
tree | 4f1ef3c430ac5ea93c15afab3769221165b19a1c /src/sdk/commandlineinterface.cpp | |
parent | 559a6b4ed5b23fee084929f9f62fabe223294f49 (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.cpp | 45 |
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() |