mirror of
https://github.com/build-cpp/cmkr
synced 2026-06-08 13:22:55 +00:00
add error class
This commit is contained in:
+19
-8
@@ -3,6 +3,7 @@
|
||||
#include "gen.h"
|
||||
#include "help.h"
|
||||
|
||||
#include <exception>
|
||||
#include <filesystem>
|
||||
#include <stdexcept>
|
||||
#include <string>
|
||||
@@ -15,25 +16,29 @@ const char *handle_args(int argc, char **argv) {
|
||||
args.push_back(argv[i]);
|
||||
|
||||
if (args.size() < 2)
|
||||
throw std::runtime_error("Please provide command line arguments!");
|
||||
return "Please provide command line arguments!";
|
||||
std::string main_arg = args[1];
|
||||
if (main_arg == "gen") {
|
||||
cmkr::gen::generate_cmake(std::filesystem::current_path().string().c_str());
|
||||
return "Generation successful!";
|
||||
auto ret = cmkr::gen::generate_cmake(std::filesystem::current_path().string().c_str());
|
||||
if (ret)
|
||||
return "CMake generation error!";
|
||||
return "CMake generation successful!";
|
||||
} else if (main_arg == "help") {
|
||||
return cmkr::help::message();
|
||||
} else if (main_arg == "version") {
|
||||
return cmkr::help::version();
|
||||
} else if (main_arg == "init") {
|
||||
if (args.size() < 3)
|
||||
throw std::runtime_error("Please provide a project type!");
|
||||
cmkr::gen::generate_project(args[2].c_str());
|
||||
return "Please provide a project type!";
|
||||
auto ret = cmkr::gen::generate_project(args[2].c_str());
|
||||
if (ret)
|
||||
return "Initialization failure!";
|
||||
return "Directory initialized!";
|
||||
} else if (main_arg == "build") {
|
||||
auto ret = build::run(argc, argv);
|
||||
if (ret)
|
||||
return "Run faced an error!";
|
||||
return "Run completed!";
|
||||
return "CMake build error!";
|
||||
return "CMake run completed!";
|
||||
} else {
|
||||
return "Unknown argument!";
|
||||
}
|
||||
@@ -41,5 +46,11 @@ const char *handle_args(int argc, char **argv) {
|
||||
} // namespace cmkr::args
|
||||
|
||||
const char *cmkr_args_handle_args(int argc, char **argv) {
|
||||
return cmkr::args::handle_args(argc, argv);
|
||||
try {
|
||||
return cmkr::args::handle_args(argc, argv);
|
||||
} catch (const std::exception &e) {
|
||||
return e.what();
|
||||
} catch (...) {
|
||||
return nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user