diff options
| author | Amlal <amlalelmahrouss@icloud.com> | 2024-12-06 15:53:20 +0100 |
|---|---|---|
| committer | Amlal <amlalelmahrouss@icloud.com> | 2024-12-06 15:57:01 +0100 |
| commit | 46a885ad913aa24543efb154886919ad30182229 (patch) | |
| tree | 3f9d6887763d8e1ea66fc89ec9aadb22f4cb9abc /private/tools/src | |
| parent | 8723d3401c15cad5797697aea4735b8972aabafb (diff) | |
META: Friday bump.
Signed-off-by: Amlal <amlalelmahrouss@icloud.com>
Diffstat (limited to 'private/tools/src')
| -rw-r--r-- | private/tools/src/Framework.cc | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/private/tools/src/Framework.cc b/private/tools/src/Framework.cc new file mode 100644 index 00000000..29426d1e --- /dev/null +++ b/private/tools/src/Framework.cc @@ -0,0 +1,68 @@ +/* + * Created on Thu Oct 17 08:00:42 CEST 2024 + * + * Copyright (c) 2024 Amlal EL Mahrouss + */ + +#include <cstdlib> +#include <filesystem> +#include <Framework.h> +#include <vector> + +/// @brief This program makes a framework directory for ZKA OS. + +int main(int argc, char* argv[]) +{ + std::vector<std::string> files; + + auto ext = kFKExtension; + + for (size_t i = 2UL; i < argc; ++i) + { + if (strcmp(argv[i], "-h") == 0) + { + std::cout << "make_framework: Framework/Application Creation Tool.\n"; + std::cout << "make_framework: © Amlal EL Mahrouss, all rights reserved.\n"; + + return EXIT_SUCCESS; + } + + if (strcmp(argv[i], "-a") == 0) + { + ext = kAppExtension; + continue; + } + + files.push_back(argv[i]); + } + + auto path = std::string(argv[1]); + + if (!path.ends_with(ext)) + return EXIT_FAILURE; + + std::filesystem::path path_arg = path; + + if (std::filesystem::create_directory(path_arg)) + { + std::filesystem::create_directory(path_arg / kRootDirectory); + std::filesystem::create_directory(path_arg / kExecDirectory); + + for (auto& file : files) + { + std::string file_cpy = file; + + while (file_cpy.find("/") != std::string::npos) + { + file_cpy.erase(0, file_cpy.find("/")); + file_cpy.erase(file_cpy.find("/"), 1); + } + + std::filesystem::copy(path, path_arg / kExecDirectory / file_cpy); + } + + return EXIT_SUCCESS; + } + + return EXIT_FAILURE; +} |
