diff options
Diffstat (limited to 'minecctl/server.c')
-rw-r--r-- | minecctl/server.c | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/minecctl/server.c b/minecctl/server.c index 979c15f..599be1f 100644 --- a/minecctl/server.c +++ b/minecctl/server.c @@ -78,6 +78,41 @@ bool server_read_config(struct cfg *cfg, struct server *server, return true; } +bool server_read_all_configs(struct cfg *cfg, bool print_results) +{ + struct server *server; + unsigned lineno; + const char *error; + bool rv = true; + + /* server->scfg.filename check excludes servers created from cmdline */ + list_for_each_entry(server, &cfg->servers, list) { + if (!server->scfg.filename) + continue; + + if (!server_read_config(cfg, server, &lineno, &error)) { + if (lineno != 0 && print_results) + info("• %s: %sfail%s - line %u: %s", + server->name, ansi_red, ansi_normal, + lineno, error); + else if (print_results) + info("• %s: %sfail%s - %s", + server->name, ansi_red, ansi_normal, + error); + rv = false; + } else if (!scfg_validate(&server->scfg, &error) && + print_results) { + info("• %s: %sfail%s - %s", + server->name, ansi_red, ansi_normal, + error); + rv = false; + } else if (print_results) { + info("• %s: %sok%s", server->name, ansi_green, + ansi_normal); + } + } +} + struct server *server_get_default(struct cfg *cfg) { struct server *server; @@ -105,6 +140,7 @@ bool server_set_default(struct cfg *cfg, const char *name) list_for_each_entry(server, &cfg->servers, list) { if (streq(name, server->name)) { list_rotate_to_front(&server->list, &cfg->servers); + cfg->default_set = true; return true; } } |