From e1fd8b63b079d72d31bd7e0ea30fb7695891bc98 Mon Sep 17 00:00:00 2001 From: Amlal El Mahrouss Date: Thu, 20 Mar 2025 05:04:26 +0100 Subject: META: A bunch of repository update for btb's relevancy. Signed-off-by: Amlal El Mahrouss --- cli/CommandLine.cc | 79 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 cli/CommandLine.cc (limited to 'cli/CommandLine.cc') diff --git a/cli/CommandLine.cc b/cli/CommandLine.cc new file mode 100644 index 0000000..231ee0b --- /dev/null +++ b/cli/CommandLine.cc @@ -0,0 +1,79 @@ + +// ============================================================= // +// btb +// Copyright (C) 2024-2025, Amlal El Mahrouss, all rights reserved. +// ============================================================= // + +#include +#include + +static bool kFailed = false; +static bool kDryRun = false; + +int main(int argc, char** argv) +{ + if (argc <= 1) + return 1; + + for (size_t index = 1; index < argc; ++index) + { + std::string index_path = argv[index]; + + if (index_path == "-v" || + index_path == "--version") + { + std::cout << "Usage: btb \n"; + std::cout << "Check for issues at: theater-quality.com/developer/issues\n"; + + std::cout << "Brought to you by Amlal El Mahrouss.\n"; + std::cout << "© 2024-2025 Amlal El Mahrouss, all rights reserved.\n"; + + return EXIT_SUCCESS; + } + else if (index_path == "--dry-run") + { + kDryRun = true; + continue; + } + else if (index_path == "-h" || + index_path == "--help") + { + std::cout << "btb: Build a JSON file: btb .json\n"; + return EXIT_SUCCESS; + } + + std::thread job_build_thread([](std::string index_path) -> void { + IManifestBuilder* builder = nullptr; + + const auto kJsonExtension = ".json"; + + if (index_path.ends_with(kJsonExtension)) + { + builder = new JSONManifestBuilder(); + } + else + { + kFailed = true; + return; + } + + std::cout << "btb: building: " << index_path << std::endl; + + if (builder && !builder->buildTarget(index_path.size(), index_path.c_str(), kDryRun)) + { + kFailed = true; + } + else if (!builder) + { + kFailed = true; + } + + delete builder; + builder = nullptr; + }, index_path); + + job_build_thread.join(); + } + + return kFailed ? EXIT_FAILURE : EXIT_SUCCESS; +} -- cgit v1.2.3