From d24315268c11d435bb9accbce87b7f46dda6ed3e Mon Sep 17 00:00:00 2001 From: Lexi Winter Date: Sun, 29 Jun 2025 00:42:31 +0100 Subject: cli: improve command dispatch a bit --- nihil.cli/dispatch_command.ccm | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 nihil.cli/dispatch_command.ccm (limited to 'nihil.cli/dispatch_command.ccm') diff --git a/nihil.cli/dispatch_command.ccm b/nihil.cli/dispatch_command.ccm new file mode 100644 index 0000000..1ba55bb --- /dev/null +++ b/nihil.cli/dispatch_command.ccm @@ -0,0 +1,31 @@ +/* + * This source code is released into the public domain. + */ + +module; + +#include +#include +#include +#include +#include + +export module nihil.cli:dispatch_command; + +import nihil.util; +import :command; +import :usage_error; + +namespace nihil { + +/* + * Invoke a command (which must have been previously registered) using + * the provided argument vector. + * + * The caller should have already stripped the executable name from argv[0] + * so that the vector starts with the command name. This is implicitly + * done if main() uses getopt(). + */ +export [[nodiscard]] auto dispatch_command(int argc, char **argv) -> int; + +} // namespace nihil -- cgit v1.2.3