summaryrefslogtreecommitdiffhomepage
path: root/src/cli/AppMain.cc
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@nekernel.org>2025-11-29 01:28:48 -0500
committerAmlal El Mahrouss <amlal@nekernel.org>2025-11-29 01:28:48 -0500
commit36cb5079f273aaf9a84882749e3e15cd2ca70829 (patch)
treece7a545073f184e1c7e991eb3f9e7f41738685cf /src/cli/AppMain.cc
parent978e187043902c1e87a6e9c3d244dabdf6f749c7 (diff)
feat: new `-build-system` switch for NeBuild.
Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
Diffstat (limited to 'src/cli/AppMain.cc')
-rw-r--r--src/cli/AppMain.cc83
1 files changed, 0 insertions, 83 deletions
diff --git a/src/cli/AppMain.cc b/src/cli/AppMain.cc
deleted file mode 100644
index 173820b..0000000
--- a/src/cli/AppMain.cc
+++ /dev/null
@@ -1,83 +0,0 @@
-
-// ============================================================= //
-// nebuild
-// Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under BSD-3 license.
-// ============================================================= //
-
-#include <NeBuildKit/JSONManifestBuilder.h>
-#include <NeBuildKit/TOMLManifestBuilder.h>
-
-static bool kFailed = false;
-static bool kDryRun = false;
-
-int main(int argc, char** argv) {
- if (argc <= 1) return EXIT_FAILURE;
-
- for (size_t index = 1; index < argc; ++index) {
- std::string index_path = argv[index];
-
- if (index_path == "-v" || index_path == "-version") {
- NeBuild::Logger::info() << "NeKernel Build.\n";
- NeBuild::Logger::info()
- << "Bugs, Issues? Check out: https://github.com/nekernel-org/nebuild/issues\n";
-
- return EXIT_SUCCESS;
- } else if (index_path == "-dry-run" || index_path == "-n") {
- kDryRun = true;
- continue;
- } else if (index_path == "-h" || index_path == "-help") {
- NeBuild::Logger::info() << "usage: nebuild <file>\n";
-
- return EXIT_SUCCESS;
- }
-
- if (index_path.starts_with("-")) {
- NeBuild::Logger::info() << "error: unknown option '" << index_path << "'\n";
-
- return EXIT_FAILURE;
- }
-
- std::thread job_build_thread(
- [](std::string index_path) -> void {
- NeBuild::IManifestBuilder* builder = nullptr;
-
- const auto kJsonExtension = ".json";
-
- if (index_path.ends_with(kJsonExtension)) {
- builder = new NeBuild::JSONManifestBuilder();
-
- if (!builder) {
- kFailed = true;
- return;
- }
- } else {
- const auto kTomlExtension = ".toml";
- builder = new NeBuild::TOMLManifestBuilder();
-
- if (index_path.ends_with(kTomlExtension)) {
- goto end;
- } else {
- NeBuild::Logger::info()
- << "error: file '" << index_path << "' is not a manifest file!" << std::endl;
- kFailed = true;
- return;
- }
- }
-
- end:
- NeBuild::Logger::info() << "building manifest: " << index_path << std::endl;
-
- if (builder && !builder->BuildTarget(index_path, kDryRun)) {
- kFailed = true;
- }
-
- delete builder;
- builder = nullptr;
- },
- index_path);
-
- job_build_thread.join();
- }
-
- return kFailed ? EXIT_FAILURE : EXIT_SUCCESS;
-}