.
This commit is contained in:
parent
194bde1a0d
commit
fce8a89491
@ -209,19 +209,22 @@ void get_all_service_env_vars(const std::string &server_name, const std::string
|
||||
all_env_vars["SERVER"] = server_name;
|
||||
all_env_vars["SERVICE"] = service_name;
|
||||
|
||||
std::vector<std::string> env_files = {
|
||||
localfile::service_env(server_name,service_name),
|
||||
localfile::template_info_env(server_name,service_name)
|
||||
};
|
||||
|
||||
for (const auto& file : env_files) {
|
||||
// load service.env from the service on this machine.
|
||||
// Lambda function to load environment variables from a file
|
||||
auto load_env_file = [&all_env_vars](const std::string& file) {
|
||||
if (!file.empty() && std::filesystem::exists(file)) {
|
||||
std::map<std::string, std::string> env_vars;
|
||||
envmanager env_manager(file);
|
||||
env_manager.load();
|
||||
env_manager.get_all_variables(env_vars);
|
||||
all_env_vars.merge(env_vars);
|
||||
}
|
||||
else
|
||||
std::cout << "Warning: Expected environment file not found: " << file << std::endl;
|
||||
};
|
||||
|
||||
// Load environment files
|
||||
load_env_file(localfile::service_env(server_name, service_name));
|
||||
load_env_file(localfile::template_info_env(server_name, service_name));
|
||||
|
||||
// determine template name.
|
||||
auto it = all_env_vars.find("TEMPLATE");
|
||||
@ -233,26 +236,11 @@ void get_all_service_env_vars(const std::string &server_name, const std::string
|
||||
std::cerr << " " << localpath::service(server_name, service_name) << std::endl << std::endl;
|
||||
return;
|
||||
}
|
||||
std::string template_name = it->second;
|
||||
template_info tinfo;
|
||||
if (!get_template_info(template_name, tinfo)) {
|
||||
std::cerr << "Error: Template '" << template_name << "' not found" << std::endl;
|
||||
return;
|
||||
}
|
||||
|
||||
{ // load _default.env from the template on this machine - gets overridden by service.env
|
||||
std::map<std::string, std::string> env_vars;
|
||||
std::string defaultenvpath = tinfo.local_template_path + "/_default.env";
|
||||
if (std::filesystem::exists(defaultenvpath)) {
|
||||
envmanager env_manager(defaultenvpath);
|
||||
env_manager.load();
|
||||
env_manager.get_all_variables(env_vars);
|
||||
all_env_vars.merge(env_vars);
|
||||
}
|
||||
if (get_template_info(it->second, tinfo))
|
||||
load_env_file(tinfo.local_template_path + "/_default.env");
|
||||
else
|
||||
std::cerr << "Warning: _default.env not found in template: " << defaultenvpath << std::endl;
|
||||
}
|
||||
|
||||
std::cerr << "Error: Template '" << it->second << "' not found" << std::endl;
|
||||
}
|
||||
|
||||
} // namespace dropshell
|
||||
|
@ -233,22 +233,23 @@
|
||||
env_manager.get_all_variables(env_vars);
|
||||
all_env_vars.merge(env_vars);
|
||||
}
|
||||
}
|
||||
|
||||
// determine template name.
|
||||
auto it = all_env_vars.find("TEMPLATE");
|
||||
if (it == all_env_vars.end()) {
|
||||
std::cerr << "Error: TEMPLATE variable not found in " << file << std::endl;
|
||||
std::cerr << "Error: TEMPLATE variable not found in " << template_path << std::endl;
|
||||
return false;
|
||||
}
|
||||
|
||||
std::string env_template_name = it->second;
|
||||
if (env_template_name.empty()) {
|
||||
std::cerr << "Error: TEMPLATE variable is empty in " << file << std::endl;
|
||||
std::cerr << "Error: TEMPLATE variable is empty in " << template_path << std::endl;
|
||||
return false;
|
||||
}
|
||||
|
||||
if (env_template_name != template_name) {
|
||||
std::cerr << "Error: TEMPLATE variable is wrong in " << file << std::endl;
|
||||
std::cerr << "Error: TEMPLATE variable is wrong in " << template_path << std::endl;
|
||||
return false;
|
||||
}
|
||||
|
||||
|
4
templates/dropshell-agent/example/.template_info.env
Normal file
4
templates/dropshell-agent/example/.template_info.env
Normal file
@ -0,0 +1,4 @@
|
||||
# Template to use - always required!
|
||||
TEMPLATE=dropshell-agent
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user