summaryrefslogtreecommitdiff
path: root/src/main-lib/configuration.cpp
diff options
context:
space:
mode:
authorRobert Griebl <robert.griebl@qt.io>2023-03-22 15:38:30 +0100
committerRobert Griebl <robert.griebl@qt.io>2023-03-23 14:08:00 +0100
commit6cc5230fd783802159aa3ca94c74b7ee1b27203a (patch)
treecccf37758beb6c93d2b4f584eeb8faf4b98f02b3 /src/main-lib/configuration.cpp
parent0ae6d0a3637075fe8005361177eae3142eee0a77 (diff)
downloadqtapplicationmanager-6cc5230fd783802159aa3ca94c74b7ee1b27203a.tar.gz
Make it possible to specify directories to read config files from
This extends the existing -c/--config-file option to also accept directories, effectively expanding the argument to all *.yaml files in the given directory. Change-Id: I83f197e8f67ba363bf27b0f511c7821402bb7033 Pick-to: 5.15 6.5 Reviewed-by: Bernd Weimer <bernd.weimer@qt.io>
Diffstat (limited to 'src/main-lib/configuration.cpp')
-rw-r--r--src/main-lib/configuration.cpp13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/main-lib/configuration.cpp b/src/main-lib/configuration.cpp
index a94e2389..a689595b 100644
--- a/src/main-lib/configuration.cpp
+++ b/src/main-lib/configuration.cpp
@@ -295,7 +295,18 @@ void Configuration::parseWithArguments(const QStringList &arguments)
timer.start();
#endif
- QStringList configFilePaths = m_clp.values(qSL("config-file"));
+ const QStringList rawConfigFilePaths = m_clp.values(qSL("config-file"));
+ QStringList configFilePaths;
+ configFilePaths.reserve(rawConfigFilePaths.size());
+ for (const auto &path : rawConfigFilePaths) {
+ if (QFileInfo(path).isDir()) {
+ const auto entries = QDir(path).entryInfoList({ qSL("*.yaml") }, QDir::Files, QDir::Name);
+ for (const auto &entry : entries)
+ configFilePaths << entry.filePath();
+ } else {
+ configFilePaths << path;
+ }
+ }
AbstractConfigCache::Options cacheOptions = AbstractConfigCache::MergedResult;
if (noCache())