summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorArttu Tarkiainen <arttu.tarkiainen@qt.io>2020-05-12 16:38:33 +0300
committerArttu Tarkiainen <arttu.tarkiainen@qt.io>2020-05-15 13:29:24 +0300
commit382dfab67c491288db050ce377dec3b843f35447 (patch)
tree9404a5f778b342c1054e0220b397b732160c5e62 /src
parentf1b4b60f3a4a89ece8e5b292077cdcfd09cc2f50 (diff)
Add support for disabling CLI features from configuration file
Task-number: QTIFW-1760 Change-Id: Ibd0668756700eeab68bce12ddce1866893cc08f9 Reviewed-by: Katja Marttila <katja.marttila@qt.io>
Diffstat (limited to 'src')
-rw-r--r--src/libs/installer/commandlineparser.cpp2
-rw-r--r--src/libs/installer/constants.h1
-rw-r--r--src/libs/installer/settings.cpp6
-rw-r--r--src/libs/installer/settings.h1
-rw-r--r--src/sdk/commandlineinterface.cpp5
5 files changed, 14 insertions, 1 deletions
diff --git a/src/libs/installer/commandlineparser.cpp b/src/libs/installer/commandlineparser.cpp
index d1e3e89d6..bf40c9bc0 100644
--- a/src/libs/installer/commandlineparser.cpp
+++ b/src/libs/installer/commandlineparser.cpp
@@ -191,7 +191,7 @@ CommandLineParser::CommandLineParser()
// Positional arguments
m_parser.addPositionalArgument(CommandLineOptions::scCommand,
- QLatin1String("Command to be run by installer."),
+ QLatin1String("Command to be run by installer. Note that this feature may be disabled by vendor."),
QLatin1String("command"));
m_parser.addPositionalArgument(CommandLineOptions::scArguments,
QLatin1String("Extra arguments for command, each separated by space."),
diff --git a/src/libs/installer/constants.h b/src/libs/installer/constants.h
index 05728bff3..58660482c 100644
--- a/src/libs/installer/constants.h
+++ b/src/libs/installer/constants.h
@@ -81,6 +81,7 @@ static const QLatin1String scRunProgramDescription("RunProgramDescription");
static const QLatin1String scTargetConfigurationFile("TargetConfigurationFile");
static const QLatin1String scAllowNonAsciiCharacters("AllowNonAsciiCharacters");
static const QLatin1String scDisableAuthorizationFallback("DisableAuthorizationFallback");
+static const QLatin1String scDisableCommandLineInterface("DisableCommandLineInterface");
static const QLatin1String scRepositorySettingsPageVisible("RepositorySettingsPageVisible");
static const QLatin1String scAllowSpaceInPath("AllowSpaceInPath");
static const QLatin1String scWizardStyle("WizardStyle");
diff --git a/src/libs/installer/settings.cpp b/src/libs/installer/settings.cpp
index 4fd006d01..e6395e44c 100644
--- a/src/libs/installer/settings.cpp
+++ b/src/libs/installer/settings.cpp
@@ -289,6 +289,7 @@ Settings Settings::fromFileAndPrefix(const QString &path, const QString &prefix,
<< scRunProgram << scRunProgramArguments << scRunProgramDescription
<< scDependsOnLocalInstallerBinary
<< scAllowSpaceInPath << scAllowNonAsciiCharacters << scDisableAuthorizationFallback
+ << scDisableCommandLineInterface
<< scWizardStyle << scStyleSheet << scTitleColor
<< scWizardDefaultWidth << scWizardDefaultHeight
<< scRepositorySettingsPageVisible << scTargetConfigurationFile
@@ -567,6 +568,11 @@ bool Settings::disableAuthorizationFallback() const
return d->m_data.value(scDisableAuthorizationFallback, false).toBool();
}
+bool Settings::disableCommandLineInterface() const
+{
+ return d->m_data.value(scDisableCommandLineInterface, false).toBool();
+}
+
bool Settings::dependsOnLocalInstallerBinary() const
{
return d->m_data.value(scDependsOnLocalInstallerBinary).toBool();
diff --git a/src/libs/installer/settings.h b/src/libs/installer/settings.h
index fff2324f1..93e658bd8 100644
--- a/src/libs/installer/settings.h
+++ b/src/libs/installer/settings.h
@@ -137,6 +137,7 @@ public:
bool allowSpaceInPath() const;
bool allowNonAsciiCharacters() const;
bool disableAuthorizationFallback() const;
+ bool disableCommandLineInterface() const;
bool containsValue(const QString &key) const;
QVariant value(const QString &key, const QVariant &defaultValue = QVariant()) const;
diff --git a/src/sdk/commandlineinterface.cpp b/src/sdk/commandlineinterface.cpp
index 1b55b5979..0ddf973d2 100644
--- a/src/sdk/commandlineinterface.cpp
+++ b/src/sdk/commandlineinterface.cpp
@@ -59,6 +59,11 @@ bool CommandLineInterface::initialize()
qCWarning(QInstaller::lcInstallerInstallLog) << errorMessage;
return false;
}
+ if (m_core->settings().disableCommandLineInterface()) {
+ qCWarning(QInstaller::lcInstallerInstallLog)
+ << "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.
m_positionalArguments = m_parser.positionalArguments();