From 3213bef6aa2b87cf8ea207e53ddf1b064539b46a Mon Sep 17 00:00:00 2001 From: "Claudius \"keldu\" Holeksa" Date: Tue, 2 Apr 2024 16:27:41 +0200 Subject: core, tools: Fixed include bug and some other behaviours --- modules/tools/examples/cli_mod.cpp | 60 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) (limited to 'modules/tools/examples/cli_mod.cpp') diff --git a/modules/tools/examples/cli_mod.cpp b/modules/tools/examples/cli_mod.cpp index 84b3dc6..42d4370 100644 --- a/modules/tools/examples/cli_mod.cpp +++ b/modules/tools/examples/cli_mod.cpp @@ -1,6 +1,66 @@ +#include "../c++/cli_analyzer.hpp" +#include +#include + +#include + +namespace schema { +using namespace saw::schema; + +using AnalyzeTest = Struct< + Member +>; +} int main(int argc, char** argv){ + /** + * Basic checking and wrapping args into an array of string_view + */ + int min_amount_args = 2; + + if( argc < (min_amount_args + 1) ) { + std::cerr<<"Not enough arguments"< 32){ + std::cerr<<"Too many arguments"< args_view; + for(int i = 0; i < argc; ++i){ + args_view.at(i) = {argv[i]}; + } + + uint64_t args_size = [&]() -> uint64_t{ + if(args_view.at(1) == "r"){ + return min_amount_args; + }else if (args_view.at(1) == "w"){ + return min_amount_args + 1u; + } + return 0u; + }(); + + if(args_size < min_amount_args){ + std::cerr<<"Invalid first argument. Must either be 'r' or 'w'"< bool { + if(args_view.at(1) == "w"){ + return false; + } + return true; + }(); + + std::string json_data; + std::deque sch_path; + int rc = saw::modify_data_on_cli(is_read_mode, args_view.at(2), sch_path, json_data); + + for(int i = 0; i < argc; ++i){ + std::cout<