.
This commit is contained in:
parent
f00523d149
commit
be5493a11c
@ -50,6 +50,26 @@ std::vector<ServerInfo> get_configured_servers() {
|
|||||||
return 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
|
// https://github.com/bloomen/transwarp?tab=readme-ov-file#range-functions
|
||||||
void list_servers() {
|
void list_servers() {
|
||||||
auto servers = get_configured_servers();
|
auto servers = get_configured_servers();
|
||||||
|
@ -17,6 +17,10 @@ namespace dropshell {
|
|||||||
};
|
};
|
||||||
|
|
||||||
std::vector<ServerInfo> get_configured_servers();
|
std::vector<ServerInfo> get_configured_servers();
|
||||||
|
|
||||||
|
ServerInfo get_server_info(const std::string& server_name);
|
||||||
|
|
||||||
|
|
||||||
void list_servers();
|
void list_servers();
|
||||||
void show_server_details(const std::string& server_name);
|
void show_server_details(const std::string& server_name);
|
||||||
|
|
||||||
|
@ -5,6 +5,8 @@
|
|||||||
#include "config.hpp"
|
#include "config.hpp"
|
||||||
#include "utils/utils.hpp"
|
#include "utils/utils.hpp"
|
||||||
#include "server_env_manager.hpp"
|
#include "server_env_manager.hpp"
|
||||||
|
#include "servers.hpp"
|
||||||
|
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <filesystem>
|
#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["SERVER"] = server_name;
|
||||||
all_env_vars["SERVICE"] = service_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
|
// Lambda function to load environment variables from a file
|
||||||
auto load_env_file = [&all_env_vars](const std::string& file) {
|
auto load_env_file = [&all_env_vars](const std::string& file) {
|
||||||
if (!file.empty() && std::filesystem::exists(file)) {
|
if (!file.empty() && std::filesystem::exists(file)) {
|
||||||
|
@ -8,14 +8,13 @@
|
|||||||
source "$(dirname "$0")/_common.sh"
|
source "$(dirname "$0")/_common.sh"
|
||||||
|
|
||||||
# Required environment variables
|
# 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
|
# 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..."
|
echo "Volume ${VOLUME_NAME} does not exist, creating..."
|
||||||
docker volume create "${VOLUME_NAME}"
|
docker volume create "${VOLUME_NAME}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if ! docker volume inspect "${VOLUME_NAME}" &>/dev/null; then
|
if ! docker volume inspect "${VOLUME_NAME}" &>/dev/null; then
|
||||||
die "Failed to create volume ${VOLUME_NAME}"
|
die "Failed to create volume ${VOLUME_NAME}"
|
||||||
fi
|
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}"
|
bash ./start.sh || die "Failed to start container ${CONTAINER_NAME}"
|
||||||
|
|
||||||
echo "Installation of ${CONTAINER_NAME} complete"
|
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