diff options
author | Bernd Weimer <bernd.weimer@pelagicore.com> | 2020-03-18 12:39:55 +0100 |
---|---|---|
committer | Bernd Weimer <bernd.weimer@pelagicore.com> | 2020-03-20 00:28:18 +0100 |
commit | 875f524db55b4a7e9fc40d149429b9a2f9ed6c52 (patch) | |
tree | 2cef3fab53f268cdd7ee97991057a81e21286097 /src/application-lib/yamlpackagescanner.cpp | |
parent | f02cbab80c0ca0a21c7dc91bddf0b6a2430e2c8c (diff) |
Support legacy configurations
Added support for legacy configuration options, ignored deprecated
ones and fixed caCertificates.
Change-Id: I1f3afd592646744f2786993a202bf51d4ba91385
Reviewed-by: Robert Griebl <robert.griebl@qt.io>
Diffstat (limited to 'src/application-lib/yamlpackagescanner.cpp')
-rw-r--r-- | src/application-lib/yamlpackagescanner.cpp | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/src/application-lib/yamlpackagescanner.cpp b/src/application-lib/yamlpackagescanner.cpp index 8b0282d1..0a2e0f4c 100644 --- a/src/application-lib/yamlpackagescanner.cpp +++ b/src/application-lib/yamlpackagescanner.cpp @@ -178,13 +178,31 @@ PackageInfo *YamlPackageScanner::scan(QIODevice *source, const QString &fileName legacyAppInfo->m_allAppProperties.insert(it.key(), it.value()); }); fields.emplace_back("documentUrl", false, YamlParser::Scalar, [](YamlParser *p) { - qCDebug(LogSystem) << " ignoring 'documentUrl'"; + qCDebug(LogSystem) << "ignoring 'documentUrl'"; (void) p->parseScalar(); }); fields.emplace_back("mimeTypes", false, YamlParser::Scalar | YamlParser::List, [&legacyAppInfo](YamlParser *p) { legacyAppInfo->m_supportedMimeTypes = p->parseStringOrStringList(); legacyAppInfo->m_supportedMimeTypes.sort(); }); + fields.emplace_back("logging", false, YamlParser::Map, [&legacyAppInfo](YamlParser *p) { + const QVariantMap logging = p->parseMap(); + if (!logging.isEmpty()) { + if (logging.size() > 1 || logging.firstKey() != qSL("dlt")) + throw YamlParserException(p, "'logging' only supports the 'dlt' key"); + legacyAppInfo->m_dltConfiguration = logging.value(qSL("dlt")).toMap(); + + // sanity check + for (auto it = legacyAppInfo->m_dltConfiguration.cbegin(); it != legacyAppInfo->m_dltConfiguration.cend(); ++it) { + if (it.key() != qSL("id") && it.key() != qSL("description")) + throw YamlParserException(p, "unsupported key in 'logging/dlt'"); + } + } + }); + fields.emplace_back("environmentVariables", false, YamlParser::Map, [](YamlParser *p) { + qCDebug(LogSystem) << "ignoring 'environmentVariables'"; + (void) p->parseMap(); + }); } // ----------------- applications ----------------- |