docs: Add 1 and update 5 files
This commit is contained in:
@@ -9,6 +9,7 @@
|
||||
#include "directories.hpp"
|
||||
#include "services.hpp"
|
||||
#include "servers.hpp"
|
||||
#include "templates.hpp"
|
||||
#include "utils/output.hpp"
|
||||
#include "utils/execute.hpp"
|
||||
#include "transwarp.hpp"
|
||||
@@ -94,6 +95,71 @@ namespace dropshell
|
||||
return execute_local_command("", rsync_cmd, {}, nullptr, (silent ? cMode::Silent : cMode::Defaults));
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------------------------------------
|
||||
// rsync_service_config : SHARED COMMAND
|
||||
// Syncs both template and service config to remote server
|
||||
// Used by install, check-config, reload-config
|
||||
// ------------------------------------------------------------------------------------------------
|
||||
bool rsync_service_config(
|
||||
const ServerConfig &server_env,
|
||||
const std::string &service,
|
||||
bool silent)
|
||||
{
|
||||
std::string server = server_env.get_server_name();
|
||||
LocalServiceInfo service_info = get_service_info(server, service);
|
||||
|
||||
if (!SIvalid(service_info))
|
||||
{
|
||||
error << "Service information not valid for " << service << " on " << server << std::endl;
|
||||
return false;
|
||||
}
|
||||
|
||||
std::string user = service_info.user;
|
||||
std::string remote_service_path = remotepath(server, user).service(service);
|
||||
|
||||
// Ensure service directory exists
|
||||
std::string mkdir_cmd = "mkdir -p " + quote(remote_service_path);
|
||||
if (!execute_ssh_command(server_env.get_SSH_INFO(user), sCommand("", mkdir_cmd, {}), cMode::Silent))
|
||||
{
|
||||
error << "Failed to create service directory " << remote_service_path << std::endl;
|
||||
return false;
|
||||
}
|
||||
|
||||
// Get template info
|
||||
template_info tinfo = gTemplateManager().get_template_info(service_info.template_name);
|
||||
if (!tinfo.is_set() || !tinfo.template_valid())
|
||||
{
|
||||
error << "Template is not valid: " << service_info.template_name << std::endl;
|
||||
return false;
|
||||
}
|
||||
|
||||
// Copy template files
|
||||
if (!silent) {
|
||||
debug << "Copying: [LOCAL] " << tinfo.local_template_path() << std::endl
|
||||
<< std::string(8, ' ') << "[REMOTE] " << remotepath(server, user).service_template(service) << "/" << std::endl;
|
||||
}
|
||||
if (!rsync_tree_to_remote(tinfo.local_template_path().string(), remotepath(server, user).service_template(service),
|
||||
server_env, silent, user))
|
||||
{
|
||||
error << "Failed to copy template files using rsync" << std::endl;
|
||||
return false;
|
||||
}
|
||||
|
||||
// Copy service config files
|
||||
if (!silent) {
|
||||
debug << "Copying: [LOCAL] " << localpath::service(server, service) << std::endl
|
||||
<< std::string(8, ' ') << "[REMOTE] " << remotepath(server, user).service_config(service) << std::endl;
|
||||
}
|
||||
if (!rsync_tree_to_remote(localpath::service(server, service), remotepath(server, user).service_config(service),
|
||||
server_env, silent, user))
|
||||
{
|
||||
error << "Failed to copy service config files using rsync" << std::endl;
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------------------------------------
|
||||
// get_arch : SHARED COMMAND
|
||||
// ------------------------------------------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user