mirror of
https://github.com/davidallendj/gdpm.git
synced 2025-12-20 03:27:02 -07:00
Merge pull request #12 from davidallendj/project-validation
Add project validation check and corresponding CLI `--ignore-validation` option
This commit is contained in:
commit
f77d92cfef
3 changed files with 23 additions and 5 deletions
|
|
@ -31,6 +31,7 @@ namespace gdpm::config{
|
||||||
bool enable_sync = true;
|
bool enable_sync = true;
|
||||||
bool enable_cache = true;
|
bool enable_cache = true;
|
||||||
bool skip_prompt = false;
|
bool skip_prompt = false;
|
||||||
|
bool ignore_validation = false;
|
||||||
bool enable_file_logging;
|
bool enable_file_logging;
|
||||||
bool clean_temporary;
|
bool clean_temporary;
|
||||||
|
|
||||||
|
|
|
||||||
13
src/main.cpp
13
src/main.cpp
|
|
@ -1,10 +1,7 @@
|
||||||
|
|
||||||
// Godot Package Manager (GPM)
|
// Godot Package Manager (GPM)
|
||||||
#include "constants.hpp"
|
|
||||||
#include "log.hpp"
|
|
||||||
#include "config.hpp"
|
|
||||||
#include "package_manager.hpp"
|
#include "package_manager.hpp"
|
||||||
#include "result.hpp"
|
|
||||||
#include <cstdlib>
|
#include <cstdlib>
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -13,7 +10,13 @@ int main(int argc, char **argv){
|
||||||
using namespace gdpm::package_manager;
|
using namespace gdpm::package_manager;
|
||||||
|
|
||||||
error error = initialize(argc, argv);
|
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();
|
finalize();
|
||||||
|
|
||||||
return EXIT_SUCCESS;
|
return EXIT_SUCCESS;
|
||||||
|
|
|
||||||
|
|
@ -147,6 +147,13 @@ namespace gdpm::package_manager{
|
||||||
.help("set verbosity level")
|
.help("set verbosity level")
|
||||||
.nargs(nargs_pattern::optional);
|
.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_description("install package(s)");
|
||||||
install_command.add_argument("packages")
|
install_command.add_argument("packages")
|
||||||
.required()
|
.required()
|
||||||
|
|
@ -409,6 +416,13 @@ namespace gdpm::package_manager{
|
||||||
return log::error_rc(ec::ARGPARSE_ERROR, e.what());
|
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)){
|
if(program.is_subcommand_used(install_command)){
|
||||||
action = action_e::install;
|
action = action_e::install;
|
||||||
// if(install_command.is_used("packages"))
|
// if(install_command.is_used("packages"))
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue