diff options
author | Robert Griebl <robert.griebl@qt.io> | 2023-03-22 15:38:30 +0100 |
---|---|---|
committer | Robert Griebl <robert.griebl@qt.io> | 2023-03-23 14:08:00 +0100 |
commit | 6cc5230fd783802159aa3ca94c74b7ee1b27203a (patch) | |
tree | cccf37758beb6c93d2b4f584eeb8faf4b98f02b3 /src/main-lib/configuration.cpp | |
parent | 0ae6d0a3637075fe8005361177eae3142eee0a77 (diff) | |
download | qtapplicationmanager-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.cpp | 13 |
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()) |