From 098460199c35218979e207a1709111e477ab9567 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Thu, 1 Oct 2015 09:13:37 +0200 Subject: build command genesis, some re-factoring --- bpkg/bpkg.cxx | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) (limited to 'bpkg/bpkg.cxx') diff --git a/bpkg/bpkg.cxx b/bpkg/bpkg.cxx index 059d7c5..51c3b0a 100644 --- a/bpkg/bpkg.cxx +++ b/bpkg/bpkg.cxx @@ -16,6 +16,8 @@ // #include +#include + #include #include #include @@ -165,20 +167,26 @@ try // return 0; // } // -#define ANY_COMMAND(OBJ, CMD) \ - if (cmd.OBJ##_##CMD ()) \ +#define COMMAND_IMPL(NP, SP, CMD) \ + if (cmd.NP##CMD ()) \ { \ if (h) \ - help (ho, #OBJ"-"#CMD, OBJ##_##CMD##_options::print_usage); \ + help (ho, SP#CMD, NP##CMD##_options::print_usage); \ else \ - OBJ##_##CMD (parse (co, args), args); \ + NP##CMD (parse (co, args), args); \ \ break; \ } + // High-level commands. + // +#define COMMAND(CMD) COMMAND_IMPL(, "", CMD) + + COMMAND(build); + // pkg-* commands // -#define PKG_COMMAND(CMD) ANY_COMMAND(pkg, CMD) +#define PKG_COMMAND(CMD) COMMAND_IMPL(pkg_, "pkg-", CMD) PKG_COMMAND (verify); PKG_COMMAND (status); @@ -192,13 +200,13 @@ try // cfg-* commands // -#define CFG_COMMAND(CMD) ANY_COMMAND(cfg, CMD) +#define CFG_COMMAND(CMD) COMMAND_IMPL(cfg_, "cfg-", CMD) CFG_COMMAND (create); // rep-* commands // -#define REP_COMMAND(CMD) ANY_COMMAND(rep, CMD) +#define REP_COMMAND(CMD) COMMAND_IMPL(rep_, "rep-", CMD) REP_COMMAND (add); REP_COMMAND (fetch); -- cgit v1.1