This commit is contained in:
zino
2023-11-23 14:40:45 +01:00
parent 77852d1d85
commit ba88040b28

View File

@@ -1,42 +1,37 @@
#!/bin/bash
# Script to deploy LGSM with customized configuration
# Exit immediately if a command exits with a non-zero status
set -e
# Directory variables
CURRENT_DIR="${PWD}"
VOLUMES_DIR="${CURRENT_DIR}/volumes"
CONFIG_REPO_DIR="$(mktemp -d)"
# Combined Git clone command
GIT_COMMAND="sudo git clone -b funmaps ssh://git@git.zinomedia.de:222/zino/lgsm-cs.git ${CONFIG_REPO_DIR}"
# Set the container name
CONTAINER_NAME="lgsm-cs"
# Function to display [INFO] in blue and the message in default color
info() {
printf "\033[0;34m[INFO]\033[0m %s\n" "$1"
}
# Function to clone and merge configuration repository
clone_and_merge_config() {
info "Cloning configuration repository to ${CONFIG_REPO_DIR}..."
${GIT_COMMAND}
info "Merging configuration from ${CONFIG_REPO_DIR} to ${VOLUMES_DIR}..."
sudo rsync -a "${CONFIG_REPO_DIR}/" "${VOLUMES_DIR}/"
info "Removing configuration repository from ${CONFIG_REPO_DIR}..."
sudo rm -rf "${CONFIG_REPO_DIR}"
# Function to check if the container is running
is_container_running() {
[ "$(docker-compose ps -q ${CONTAINER_NAME} | xargs docker inspect -f '{{.State.Status}}' 2>/dev/null)" = "running" ]
}
# Main deployment process
info "Stopping Docker container..."
docker-compose down
# Function to execute commands in the container
execute_in_container() {
info "Executing command in container: $1"
docker-compose exec -T "${CONTAINER_NAME}" sh -c "$1"
}
clone_and_merge_config
# Check if the container is running
if ! is_container_running; then
info "Warning: Container ${CONTAINER_NAME} is not running. Please start the container and rerun the script."
exit 1
fi
info "Starting Docker container with customized configuration..."
docker-compose up -d
# Container is confirmed to be running, proceed with script operations
info "Deployment completed successfully."
# Moving and copying libstdc++.so.6
execute_in_container "mv /data/serverfiles/libstdc++.so.6 /data/serverfiles/libstdc++.so.6.bak && cp /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /data/serverfiles/"
execute_in_container "mv /data/.local/share/Steam/steamcmd/linux32/libstdc++.so.6 /data/.local/share/Steam/steamcmd/linux32/libstdc++.so.6.bak && cp /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /data/.local/share/Steam/steamcmd/linux32/"
# Moving and copying libgcc_s.so.1
execute_in_container "mv /data/serverfiles/libgcc_s.so.1 /data/serverfiles/libgcc_s.so.1.bak && cp /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 /data/serverfiles/"
info "Script operations completed successfully."