summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArttu Tarkiainen <arttu.tarkiainen@qt.io>2020-06-05 22:02:03 +0300
committerArttu Tarkiainen <arttu.tarkiainen@qt.io>2020-06-10 07:06:34 +0000
commita5d8d25531597de44d8296c1686a659122d9882e (patch)
tree45c5fc43ccb314004cb5cc6a92526d63e6aca18f
parent7eebeaa99645b3cb5a1e6307ba3594378ba4727f (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.cpp9
-rw-r--r--src/libs/installer/constants.h4
-rw-r--r--src/sdk/commandlineinterface.cpp14
-rw-r--r--src/sdk/main.cpp8
-rw-r--r--src/sdk/sdkapp.h7
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;