.
This commit is contained in:
parent
f00523d149
commit
be5493a11c
@ -50,6 +50,26 @@ std::vector<ServerInfo> get_configured_servers() {
|
||||
return servers;
|
||||
}
|
||||
|
||||
ServerInfo get_server_info(const std::string &server_name)
|
||||
{
|
||||
std::vector<std::string> local_config_directories = gConfig().get_local_config_directories();
|
||||
if (local_config_directories.empty())
|
||||
return ServerInfo();
|
||||
|
||||
for (auto &config_dir : local_config_directories) {
|
||||
std::string server_dir = config_dir + "/" + server_name;
|
||||
if (std::filesystem::exists(server_dir)) {
|
||||
server_env_manager env(server_name);
|
||||
if (!env.is_valid()) {
|
||||
std::cerr << "Error: Invalid server environment file: " << server_dir << std::endl;
|
||||
continue;
|
||||
}
|
||||
return ServerInfo({server_name, env.get_SSH_HOST(), env.get_SSH_USER(), env.get_SSH_PORT()});
|
||||
}
|
||||
}
|
||||
return ServerInfo();
|
||||
}
|
||||
|
||||
// https://github.com/bloomen/transwarp?tab=readme-ov-file#range-functions
|
||||
void list_servers() {
|
||||
auto servers = get_configured_servers();
|
||||
|
@ -17,6 +17,10 @@ namespace dropshell {
|
||||
};
|
||||
|
||||
std::vector<ServerInfo> get_configured_servers();
|
||||
|
||||
ServerInfo get_server_info(const std::string& server_name);
|
||||
|
||||
|
||||
void list_servers();
|
||||
void show_server_details(const std::string& server_name);
|
||||
|
||||
|
@ -5,6 +5,8 @@
|
||||
#include "config.hpp"
|
||||
#include "utils/utils.hpp"
|
||||
#include "server_env_manager.hpp"
|
||||
#include "servers.hpp"
|
||||
|
||||
#include <iostream>
|
||||
#include <filesystem>
|
||||
|
||||
@ -209,6 +211,11 @@ 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;
|
||||
|
||||
ServerInfo server_info = get_server_info(server_name);
|
||||
if (server_info.ssh_host.empty())
|
||||
std::cerr << "Error: Server " << server_name << " not found - ssh_host empty, so HOST_NAME not set" << std::endl;
|
||||
all_env_vars["HOST_NAME"] = server_info.ssh_host;
|
||||
|
||||
// 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)) {
|
||||
|
@ -8,14 +8,13 @@
|
||||
source "$(dirname "$0")/_common.sh"
|
||||
|
||||
# Required environment variables
|
||||
check_required_env_vars "CONTAINER_NAME" "IMAGE_REGISTRY" "IMAGE_REPO" "IMAGE_TAG" "VOLUME_NAME"
|
||||
check_required_env_vars "CONTAINER_NAME" "IMAGE_REGISTRY" "IMAGE_REPO" "IMAGE_TAG" "VOLUME_NAME" "HOST_NAME" "HOST_PORT"
|
||||
|
||||
# Create volume if it doesn't exist
|
||||
if ! docker volume ls | grep -q "^${VOLUME_NAME} "; then
|
||||
if ! docker volume inspect "${VOLUME_NAME}" &>/dev/null; then
|
||||
echo "Volume ${VOLUME_NAME} does not exist, creating..."
|
||||
docker volume create "${VOLUME_NAME}"
|
||||
fi
|
||||
|
||||
if ! docker volume inspect "${VOLUME_NAME}" &>/dev/null; then
|
||||
die "Failed to create volume ${VOLUME_NAME}"
|
||||
fi
|
||||
@ -33,4 +32,4 @@ _remove_container $CONTAINER_NAME || die "Failed to remove container ${CONTAINER
|
||||
bash ./start.sh || die "Failed to start container ${CONTAINER_NAME}"
|
||||
|
||||
echo "Installation of ${CONTAINER_NAME} complete"
|
||||
echo "You can access the service at http://${SERVER}:${HOST_PORT}"
|
||||
echo "You can access the service at http://${HOST_NAME}:${HOST_PORT}"
|
||||
|
Loading…
x
Reference in New Issue
Block a user