diff options
author | Arttu Tarkiainen <arttu.tarkiainen@qt.io> | 2020-06-05 22:02:03 +0300 |
---|---|---|
committer | Arttu Tarkiainen <arttu.tarkiainen@qt.io> | 2020-06-10 07:06:34 +0000 |
commit | a5d8d25531597de44d8296c1686a659122d9882e (patch) | |
tree | 45c5fc43ccb314004cb5cc6a92526d63e6aca18f | |
parent | 7eebeaa99645b3cb5a1e6307ba3594378ba4727f (diff) |
Reintroduce removed --checkupdates and --updater as deprecated options
These should be only provided for backward compatibility and be hidden
from help text.
Task-number: QTIFW-1791
Change-Id: Iff92bdf0be425edf724d3bcd3984458eca5f8ff2
Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
-rw-r--r-- | src/libs/installer/commandlineparser.cpp | 9 | ||||
-rw-r--r-- | src/libs/installer/constants.h | 4 | ||||
-rw-r--r-- | src/sdk/commandlineinterface.cpp | 14 | ||||
-rw-r--r-- | src/sdk/main.cpp | 8 | ||||
-rw-r--r-- | src/sdk/sdkapp.h | 7 |
5 files changed, 37 insertions, 5 deletions
diff --git a/src/libs/installer/commandlineparser.cpp b/src/libs/installer/commandlineparser.cpp index 6e4e86ff4..051de2c1f 100644 --- a/src/libs/installer/commandlineparser.cpp +++ b/src/libs/installer/commandlineparser.cpp @@ -198,6 +198,15 @@ CommandLineParser::CommandLineParser() "<path_to_qt>/bin/qmake -r SQUISH_PATH=<pat_to_squish>"), QLatin1String("port number"))); + // Deprecated options + QCommandLineOption deprecatedUpdater(CommandLineOptions::scDeprecatedUpdater); + deprecatedUpdater.setHidden(true); + m_parser.addOption(deprecatedUpdater); + + QCommandLineOption deprecatedCheckUpdates(CommandLineOptions::scDeprecatedCheckUpdates); + deprecatedCheckUpdates.setHidden(true); + m_parser.addOption(deprecatedCheckUpdates); // Behaves like check-updates but does not default to verbose output + // Custom extension options m_parser.addOptions(d->extensionsOptions()); diff --git a/src/libs/installer/constants.h b/src/libs/installer/constants.h index 9e90d9383..356fa75e4 100644 --- a/src/libs/installer/constants.h +++ b/src/libs/installer/constants.h @@ -187,6 +187,10 @@ static const QLatin1String scStartClientLong("start-client"); static const QLatin1String scSquishPortShort("q"); static const QLatin1String scSquishPortLong("squish-port"); +// Deprecated options, provided only for backward compatibility +static const QLatin1String scDeprecatedUpdater("updater"); +static const QLatin1String scDeprecatedCheckUpdates("checkupdates"); + // Options supposed to be used without graphical interface static const QStringList scCommandLineInterfaceOptions = { scInstallShort, diff --git a/src/sdk/commandlineinterface.cpp b/src/sdk/commandlineinterface.cpp index 75ab19cd5..942faaf31 100644 --- a/src/sdk/commandlineinterface.cpp +++ b/src/sdk/commandlineinterface.cpp @@ -64,14 +64,22 @@ bool CommandLineInterface::initialize() << "Command line interface support disabled from installer configuration by vendor!"; return false; } - // Filter the arguments list by removing the command itself - // and any key=value pair occurrences. + // Filter the arguments list by removing any key=value pair occurrences. m_positionalArguments = m_parser.positionalArguments(); - m_positionalArguments.removeFirst(); foreach (const QString &argument, m_positionalArguments) { if (argument.contains(QLatin1Char('='))) m_positionalArguments.removeOne(argument); } + if (m_positionalArguments.isEmpty()) { + // Special case, normally positional arguments should contain + // at least the command invoked. + qCDebug(QInstaller::lcInstallerInstallLog) + << "Command line interface initialized but no command argument found."; + } else { + // Sanity and order of arguments already checked in main(), we should be + // quite safe to assume that command is the first positional argument. + m_positionalArguments.removeFirst(); + } return true; } diff --git a/src/sdk/main.cpp b/src/sdk/main.cpp index 8745541d7..8243beb5e 100644 --- a/src/sdk/main.cpp +++ b/src/sdk/main.cpp @@ -91,6 +91,9 @@ int main(int argc, char *argv[]) mutually << CommandLineOptions::scStartPackageManagerLong; if (parser.isSet(CommandLineOptions::scStartUninstallerLong)) mutually << CommandLineOptions::scStartUninstallerLong; + // IFW 3.x.x style --updater option support provided for backward compatibility + if (parser.isSet(CommandLineOptions::scDeprecatedUpdater)) + mutually << CommandLineOptions::scDeprecatedUpdater; if (mutually.count() > 1) { sanityMessage = QString::fromLatin1("The following options are mutually exclusive: %1.") @@ -219,7 +222,10 @@ int main(int argc, char *argv[]) const SelfRestarter restarter(argc, argv); if (parser.positionalArguments().contains(CommandLineOptions::scCheckUpdatesShort) - || parser.positionalArguments().contains(CommandLineOptions::scCheckUpdatesLong)) { + || parser.positionalArguments().contains(CommandLineOptions::scCheckUpdatesLong) + || parser.isSet(CommandLineOptions::scDeprecatedCheckUpdates)) { + // Also check for deprecated --checkupdates option, which is superseded by check-updates + // command in IFW 4.x.x. Should not be used for normal interactive usage. return CommandLineInterface(argc, argv).checkUpdates(); } else if (parser.positionalArguments().contains(CommandLineOptions::scListShort) || parser.positionalArguments().contains(CommandLineOptions::scListLong)) { diff --git a/src/sdk/sdkapp.h b/src/sdk/sdkapp.h index ecc91699a..af7468731 100644 --- a/src/sdk/sdkapp.h +++ b/src/sdk/sdkapp.h @@ -141,6 +141,9 @@ public: break; } } + if (m_parser.isSet(CommandLineOptions::scDeprecatedCheckUpdates)) + isCommandLineInterface = true; + QString loggingRules; if (m_parser.isSet(CommandLineOptions::scLoggingRulesLong)) { loggingRules = m_parser.value(CommandLineOptions::scLoggingRulesLong) @@ -194,7 +197,9 @@ public: if (m_parser.isSet(CommandLineOptions::scShowVirtualComponentsLong)) QInstaller::PackageManagerCore::setVirtualComponentsVisible(true); - if (m_parser.isSet(CommandLineOptions::scStartUpdaterLong)) { + // IFW 3.x.x style --updater option support provided for backward compatibility + if (m_parser.isSet(CommandLineOptions::scStartUpdaterLong) + || m_parser.isSet(CommandLineOptions::scDeprecatedUpdater)) { if (m_core->isInstaller()) { errorMessage = QObject::tr("Cannot start installer binary as updater."); return false; |