Skip to content

Commit e479b50

Browse files
committed
print_config_info: change file handling in GetConfigPaths
1 parent 86989f2 commit e479b50

File tree

2 files changed

+22
-17
lines changed

2 files changed

+22
-17
lines changed

application/F3DConfigFileTools.cxx

Lines changed: 20 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -62,16 +62,9 @@ std::vector<fs::path> GetConfigPaths(const std::string& configSearch)
6262

6363
for (const auto& configName : configNames)
6464
{
65-
configPath = dir / (configName);
66-
if (fs::exists(configPath))
67-
{
68-
f3d::log::debug("Config file found: ", configPath.string());
69-
paths.emplace_back(configPath);
70-
}
71-
else
72-
{
73-
f3d::log::debug("Candidate config file not found: ", configPath.string());
74-
}
65+
configPath = dir / configName;
66+
paths.emplace_back(configPath);
67+
f3d::log::debug("Found potential config file: ", configPath.string());
7568
}
7669
}
7770
catch (const fs::filesystem_error&)
@@ -129,7 +122,16 @@ F3DConfigFileTools::ParsedConfigFiles F3DConfigFileTools::ReadConfigFiles(
129122
}
130123
catch (const fs::filesystem_error&)
131124
{
132-
f3d::log::error("Configuration file does not exist: ", configPath.string(), " , ignoring it");
125+
// This (file not found) error is expected in dry run mode
126+
if (dryRun)
127+
{
128+
f3d::log::print(logLevel, "Found available config location ", configPath.string());
129+
}
130+
else
131+
{
132+
f3d::log::debug(
133+
"Configuration file does not exist: ", configPath.string(), " , ignoring it");
134+
}
133135
continue;
134136
}
135137

@@ -157,16 +159,17 @@ F3DConfigFileTools::ParsedConfigFiles F3DConfigFileTools::ReadConfigFiles(
157159
f3d::log::print(logLevel, "Configuration file for \"", configSearch, "\" could not be found");
158160
}
159161

160-
// Clear config file paths to avoid reading them if dryRun is set
161-
if (dryRun)
162-
{
163-
actualConfigFilePaths.clear();
164-
}
165-
166162
// Read config files
167163
F3DOptionsTools::OptionsEntries optionsEntries;
168164
F3DOptionsTools::OptionsEntries imperativeOptionsEntries;
169165
F3DConfigFileTools::BindingsEntries bindingsEntries;
166+
// Return early to avoid reading any config files
167+
if (dryRun)
168+
{
169+
return F3DConfigFileTools::ParsedConfigFiles{ std::move(optionsEntries),
170+
std::move(imperativeOptionsEntries), std::move(bindingsEntries) };
171+
}
172+
170173
for (const auto& configFilePath : actualConfigFilePaths)
171174
{
172175
std::ifstream file(configFilePath);

application/F3DConfigFileTools.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ struct ParsedConfigFiles
2525
/**
2626
* Read config files using userConfig if any, return a ParsedConfigFiles
2727
* containing ordered optionDict, ordered imperative optionDict and ordered bindingsEntries
28+
* If dryRun is set, config files won't be read
29+
* logLevel determines the VerboseLevel of any non-warning/error log calls
2830
*/
2931
ParsedConfigFiles ReadConfigFiles(
3032
const std::string& userConfig, bool dryRun, f3d::log::VerboseLevel logLevel);

0 commit comments

Comments
 (0)