From 4ae60696aed938347cc1cf2a5d8f5a2b86292132 Mon Sep 17 00:00:00 2001 From: David Härdeman Date: Tue, 7 Jul 2020 22:32:11 +0200 Subject: Improve handling of info and status commands --- minecctl/server.c | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) (limited to 'minecctl/server.c') 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; } } -- cgit v1.2.3