From 769457c165488fb8059ecb843a1c200f69dce95d Mon Sep 17 00:00:00 2001 From: David Härdeman Date: Tue, 30 Jun 2020 08:54:52 +0200 Subject: Centralize scfg validation and use in minecctl to implement a lint command --- minecctl/misc-commands.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'minecctl/misc-commands.c') diff --git a/minecctl/misc-commands.c b/minecctl/misc-commands.c index f20cac5..1268138 100644 --- a/minecctl/misc-commands.c +++ b/minecctl/misc-commands.c @@ -17,6 +17,30 @@ bool do_list(struct cfg *cfg) return true; } +bool do_lint(struct cfg *cfg) +{ + struct server *server; + 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; + + info("%s", server->name); + + /* FIXME: should return bool */ + server_read_config(cfg, server); + + if (!scfg_validate(&server->scfg)) { + error("%s: invalid", server->name); + rv = false; + } + } + + return rv; +} + bool do_pcount(struct cfg *cfg) { unsigned x, y; -- cgit v1.2.3