From 920d648a5113cee36306b555bb3de0dad6e0affe Mon Sep 17 00:00:00 2001 From: "David J. Allen" Date: Sun, 18 Aug 2024 13:35:21 -0600 Subject: [PATCH 1/4] Added ignore_validation flag to config --- include/config.hpp | 1 + 1 file changed, 1 insertion(+) diff --git a/include/config.hpp b/include/config.hpp index 3d2a135..5fc0fba 100644 --- a/include/config.hpp +++ b/include/config.hpp @@ -31,6 +31,7 @@ namespace gdpm::config{ bool enable_sync = true; bool enable_cache = true; bool skip_prompt = false; + bool ignore_validation = false; bool enable_file_logging; bool clean_temporary; From 6ab1345cfe0bad02da93fcb787294ad8a5babba1 Mon Sep 17 00:00:00 2001 From: "David J. Allen" Date: Sun, 18 Aug 2024 13:35:51 -0600 Subject: [PATCH 2/4] Removed unused includes from main.cpp --- src/main.cpp | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index 5b73e29..e0c8bc6 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,10 +1,7 @@ // Godot Package Manager (GPM) -#include "constants.hpp" -#include "log.hpp" -#include "config.hpp" + #include "package_manager.hpp" -#include "result.hpp" #include From ce347d9b5645345d490b1bd5e68c5a06fab92a79 Mon Sep 17 00:00:00 2001 From: "David J. Allen" Date: Sun, 18 Aug 2024 13:41:25 -0600 Subject: [PATCH 3/4] Added log prints in main.cpp --- src/main.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/main.cpp b/src/main.cpp index e0c8bc6..0891df9 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -10,7 +10,13 @@ int main(int argc, char **argv){ using namespace gdpm::package_manager; error error = initialize(argc, argv); - parse_arguments(argc, argv); + if(error.has_occurred()) { + log::error(error); + } + error = parse_arguments(argc, argv); + if(error.has_occurred()) { + log::error(error); + } finalize(); return EXIT_SUCCESS; From c78cdd3da99804732de57a8f41852b041f0cb359 Mon Sep 17 00:00:00 2001 From: "David J. Allen" Date: Sun, 18 Aug 2024 13:42:02 -0600 Subject: [PATCH 4/4] Added ignore_validation flag check and CLI argument --- src/package_manager.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/package_manager.cpp b/src/package_manager.cpp index 924ff03..2713bd7 100644 --- a/src/package_manager.cpp +++ b/src/package_manager.cpp @@ -147,6 +147,13 @@ namespace gdpm::package_manager{ .help("set verbosity level") .nargs(nargs_pattern::optional); + program.add_argument("--ignore-validation") + .action([&](const auto&){ config.ignore_validation = true; }) + .default_value(false) + .implicit_value(true) + .help("ignore checking if current directory is a Godot project") + .nargs(0); + install_command.add_description("install package(s)"); install_command.add_argument("packages") .required() @@ -409,6 +416,13 @@ namespace gdpm::package_manager{ return log::error_rc(ec::ARGPARSE_ERROR, e.what()); } + /* Check if we're running in a directory with 'project.godot' file */ + if (!config.ignore_validation) { + if(!std::filesystem::exists("project.godot")){ + return error(ec::FILE_NOT_FOUND, "no 'project.godot' file found in current directory"); + } + } + if(program.is_subcommand_used(install_command)){ action = action_e::install; // if(install_command.is_used("packages"))