Program Listing for File config_setup.hpp¶
↰ Return to documentation for file (include/cookiecutter-empirical-project/config_setup.hpp)
#pragma once
#include <filesystem>
#include "emp/config/ArgManager.hpp"
#include "emp/prefab/ConfigPanel.hpp"
#include "emp/web/UrlParams.hpp"
#include "emp/web/web.hpp"
#include "cookiecutter-empirical-project/ExampleConfig.hpp"
void use_existing_config_file(cookiecutter_empirical_project::Config & config, emp::ArgManager & am) {
if(std::filesystem::exists("cookiecutter-empirical-project.cfg")) {
std::cout << "Configuration read from cookiecutter-empirical-project.cfg" << "\n";
config.Read("cookiecutter-empirical-project.cfg");
}
am.UseCallbacks();
if (am.HasUnused())
std::exit(EXIT_FAILURE);
}
void setup_config_web(cookiecutter_empirical_project::Config & config) {
auto specs = emp::ArgManager::make_builtin_specs(&config);
emp::ArgManager am(emp::web::GetUrlParams(), specs);
use_existing_config_file(config, am);
}
void setup_config_native(cookiecutter_empirical_project::Config & config, int argc, char* argv[]) {
auto specs = emp::ArgManager::make_builtin_specs(&config);
emp::ArgManager am(argc, argv, specs);
use_existing_config_file(config, am);
}