Added --dump-config command line option (Fixes #77)

This commit is contained in:
Bartek Kryza
2023-01-17 23:43:44 +01:00
parent 74353603f8
commit 00b9321034
10 changed files with 1106 additions and 606 deletions

View File

@@ -61,6 +61,13 @@ void print_version();
*/
void print_diagrams_list(const clanguml::config::config &cfg);
/**
* Print effective config after loading and setting default values.
*
* @param cfg Configuration instance loaded from configuration file
*/
void print_config(const clanguml::config::config &cfg);
/**
* Generate sample configuration file and exit.
*
@@ -164,6 +171,7 @@ int main(int argc, const char *argv[])
std::optional<std::string> add_sequence_diagram;
std::optional<std::string> add_package_diagram;
std::optional<std::string> add_include_diagram;
bool dump_config{false};
app.add_option(
"-c,--config", config_path, "Location of configuration file");
@@ -190,6 +198,8 @@ int main(int argc, const char *argv[])
"Add package diagram config");
app.add_option("--add-include-diagram", add_include_diagram,
"Add include diagram config");
app.add_flag(
"--dump-config", dump_config, "Print effective config to stdout");
CLI11_PARSE(app, argc, argv);
@@ -243,6 +253,11 @@ int main(int argc, const char *argv[])
return 0;
}
if (dump_config) {
print_config(config);
return 0;
}
LOG_INFO("Loaded clang-uml config from {}", config_path);
if (!compilation_database_dir.empty()) {
@@ -620,4 +635,15 @@ int add_config_diagram(clanguml::common::model::diagram_t type,
ofs.close();
return 0;
}
void print_config(const clanguml::config::config &cfg)
{
YAML::Emitter out;
out.SetIndent(2);
out << cfg;
out << YAML::Newline;
std::cout << out.c_str();
}