48 lines
1.6 KiB
Bash
Executable File
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)
|
|
LOCAL_APPS='/home/vm-user/local-apps'
|
|
REMOTE_APPS='/home/vm-user/remote-apps'
|
|
|
|
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 "#${service_name_cap}_CONFIG_REMOTE='${REMOTE_APPS}/${service_name}/config'" >> "${service_path}/.env"
|
|
echo "#${service_name_cap}_CONFIG_LOCAL='${LOCAL_APPS}/${service_name}/config'" >> "${service_path}/.env"
|
|
echo "#${service_name_cap}_DATA_REMOTE='${REMOTE_APPS}/${service_name}/data'" >> "${service_path}/.env"
|
|
echo "#${service_name_cap}_DATA_LOCAL='${LOCAL_APPS}/${service_name}/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"
|