davydovcloud-setup/services/tools/create_svc_directory.sh

48 lines
1.6 KiB
Bash
Executable File

#!/usr/bin/env bash
# Script to create a service directory with Docker Compose and .env files
set -euo pipefail
GIT_REPO_ROOT=$(git rev-parse --show-toplevel)
function create_dotenv() {
local service_path="${1}"
local service_name="${2}"
local service_name_cap="${service_name^^}"
printf "# Dot Env for service %s created at %s\n" \
"${service_name}" "$(TZ=Europe/Helsinki date)" > "${service_path}/.env"
echo "LOCAL_APPS='/home/vm-user/local-apps'" >> "${service_path}/.env"
echo "REMOTE_APPS='/home/vm-user/remote-apps'" >> "${service_path}/.env"
echo "#${service_name_cap}_CONFIG_REMOTE='\${REMOTE_APPS}/config'" >> "${service_path}/.env"
echo "#${service_name_cap}_CONFIG_LOCAL='\${LOCAL_APPS}/config'" >> "${service_path}/.env"
echo "#${service_name_cap}_DATA_REMOTE='\${REMOTE_APPS}/data'" >> "${service_path}/.env"
echo "#${service_name_cap}_DATA_LOCAL='\${LOCAL_APPS}/data'" >> "${service_path}/.env"
}
function create_compose() {
local service_path="${1}"
printf "# Docker Compose for service %s created at %s\n" \
"${service_name}" "$(TZ=Europe/Helsinki date)" > "${service_path}/docker-compose.yml"
}
function create_svc_directory() {
local service_name="${1}"
local service_path="${GIT_REPO_ROOT}/services/${service_name}"
mkdir -p "${service_path}"
create_dotenv ${service_path} ${service_name}
create_compose ${service_path} ${service_name}
echo "Service directory '${service_name}' created successfully at '${service_path}'."
}
if [ $# -ne 1 ]; then
echo "Usage: $0 <service_name>"
exit 1
fi
create_svc_directory "$1"