diff options
author | Katja Marttila <katja.marttila@qt.io> | 2019-05-27 10:45:21 +0300 |
---|---|---|
committer | Katja Marttila <katja.marttila@qt.io> | 2019-10-18 12:52:39 +0000 |
commit | 9ce679325c244859c7e50ed3cca304c1e0f2b698 (patch) | |
tree | fdb47b30eaadf9d4a7fe3ed84a8f802a9020325c | |
parent | 516492370b95e9c07cad4080ef713d5b2b3f2f94 (diff) |
List installed packages from command line
Change-Id: Ic8efe08be347f3a208e37458936f8316d66ca916
Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
-rw-r--r-- | src/libs/installer/packagemanagercore.cpp | 11 | ||||
-rw-r--r-- | src/libs/installer/packagemanagercore.h | 1 | ||||
-rw-r--r-- | src/sdk/commandlineparser.cpp | 2 | ||||
-rw-r--r-- | src/sdk/constants.h | 1 | ||||
-rw-r--r-- | src/sdk/installerbase.cpp | 12 |
5 files changed, 25 insertions, 2 deletions
diff --git a/src/libs/installer/packagemanagercore.cpp b/src/libs/installer/packagemanagercore.cpp index c154edf76..6c30208db 100644 --- a/src/libs/installer/packagemanagercore.cpp +++ b/src/libs/installer/packagemanagercore.cpp @@ -1824,6 +1824,17 @@ ComponentModel *PackageManagerCore::updaterComponentModel() const return d->m_updaterModel; } +void PackageManagerCore::listInstalledPackages() +{ + LocalPackagesHash installedPackages = this->localInstalledPackages(); + + const QStringList &keys = installedPackages.keys(); + foreach (const QString &key, keys) { + KDUpdater::LocalPackage package = installedPackages.value(key); + qDebug() << package.name; + } +} + void PackageManagerCore::updateComponentsSilently() { //Check if there are processes running in the install diff --git a/src/libs/installer/packagemanagercore.h b/src/libs/installer/packagemanagercore.h index f4240fde0..eb4a630d4 100644 --- a/src/libs/installer/packagemanagercore.h +++ b/src/libs/installer/packagemanagercore.h @@ -226,6 +226,7 @@ public: ComponentModel *defaultComponentModel() const; ComponentModel *updaterComponentModel() const; + void listInstalledPackages(); void updateComponentsSilently(); // convenience diff --git a/src/sdk/commandlineparser.cpp b/src/sdk/commandlineparser.cpp index 3d0d2412a..131f69a48 100644 --- a/src/sdk/commandlineparser.cpp +++ b/src/sdk/commandlineparser.cpp @@ -118,6 +118,8 @@ CommandLineParser::CommandLineParser() QLatin1String("URI,..."))); m_parser.addOption(QCommandLineOption(QLatin1String(CommandLineOptions::SilentUpdate), QLatin1String("Updates all packages silently."))); + m_parser.addOption(QCommandLineOption(QLatin1String(CommandLineOptions::ListInstalledPackages), + QLatin1String("Lists installed packages."))); m_parser.addOption(QCommandLineOption(QLatin1String(CommandLineOptions::Platform), QLatin1String("Use the specified platform plugin."), QLatin1String("plugin"))); m_parser.addPositionalArgument(QLatin1String(CommandLineOptions::KeyValue), diff --git a/src/sdk/constants.h b/src/sdk/constants.h index e9eca9103..ea76df620 100644 --- a/src/sdk/constants.h +++ b/src/sdk/constants.h @@ -54,6 +54,7 @@ const char StartServer[] = "startserver"; const char StartClient[] = "startclient"; const char InstallCompressedRepository[] = "installCompressedRepository"; const char SilentUpdate[] = "silentUpdate"; +const char ListInstalledPackages[] = "listInstalledPackages"; const char Platform[] = "platform"; const char SquishPort[] = "squish-port"; diff --git a/src/sdk/installerbase.cpp b/src/sdk/installerbase.cpp index 8ec142950..5c8478036 100644 --- a/src/sdk/installerbase.cpp +++ b/src/sdk/installerbase.cpp @@ -301,8 +301,16 @@ int InstallerBase::run() throw QInstaller::Error(QLatin1String("Silent update not allowed.")); m_core->setUpdater(); m_core->updateComponentsSilently(); - } - else { + } else if (parser.isSet(QLatin1String(CommandLineOptions::ListInstalledPackages))){ + if (m_core->isInstaller()) + throw QInstaller::Error(QLatin1String("Cannot start installer binary as package manager.")); + m_core->setPackageManager(); + + const ProductKeyCheck *const productKeyCheck = ProductKeyCheck::instance(); + if (!productKeyCheck->hasValidLicense()) + throw QInstaller::Error(QLatin1String("No valid license found.")); + m_core->listInstalledPackages(); + } else { //create the wizard GUI TabController controller(nullptr); controller.setManager(m_core); |