66 lines
2.0 KiB
Bash
Executable File
66 lines
2.0 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
source "${SCRIPT_DIR}/functions.sh"
|
|
resolve_paths
|
|
require_env
|
|
|
|
TEMPLATE_FILE="${INIT_DIR}/templates/main.yaml"
|
|
OUTPUT_FILE="${ROOT_DIR}/compose.yaml"
|
|
|
|
require_file "$TEMPLATE_FILE" "Compose template"
|
|
|
|
log_info "Generating compose.yaml based on .env configuration..."
|
|
|
|
# Read configuration from .env
|
|
# Defaults: LiveKit=off, WebApp=None, Proxy=Traefik
|
|
INCLUDE_LIVEKIT="${INCLUDE_LIVEKIT:-false}"
|
|
WEBAPP="${WEBAPP:-NONE}"
|
|
PROXY="${PROXY:-TRAEFIK}"
|
|
|
|
# Determine inclusion flags based on single-value variables
|
|
if [[ "$WEBAPP" == "ELEMENT" ]]; then
|
|
INCLUDE_ELEMENT="true"
|
|
INCLUDE_CINNY="false"
|
|
INCLUDE_FLUFFY="false"
|
|
elif [[ "$WEBAPP" == "CINNY" ]]; then
|
|
INCLUDE_ELEMENT="false"
|
|
INCLUDE_CINNY="true"
|
|
INCLUDE_FLUFFY="false"
|
|
elif [[ "$WEBAPP" == "FLUFFY" ]]; then
|
|
INCLUDE_ELEMENT="false"
|
|
INCLUDE_CINNY="false"
|
|
INCLUDE_FLUFFY="true"
|
|
else
|
|
INCLUDE_ELEMENT="false"
|
|
INCLUDE_CINNY="false"
|
|
INCLUDE_FLUFFY="false"
|
|
fi
|
|
|
|
if [[ "$PROXY" == "NGINX" ]]; then
|
|
INCLUDE_NGINX="true"
|
|
INCLUDE_TRAEFIK="false"
|
|
else
|
|
INCLUDE_NGINX="false"
|
|
INCLUDE_TRAEFIK="true"
|
|
fi
|
|
|
|
cp "$TEMPLATE_FILE" "$OUTPUT_FILE"
|
|
|
|
toggle_block "$OUTPUT_FILE" "# \[LIVEKIT_START\]" "# \[LIVEKIT_END\]" "$INCLUDE_LIVEKIT"
|
|
toggle_block "$OUTPUT_FILE" "# \[ELEMENT_START\]" "# \[ELEMENT_END\]" "$INCLUDE_ELEMENT"
|
|
toggle_block "$OUTPUT_FILE" "# \[CINNY_START\]" "# \[CINNY_END\]" "$INCLUDE_CINNY"
|
|
toggle_block "$OUTPUT_FILE" "# \[FLUFFYCHAT_START\]" "# \[FLUFFYCHAT_END\]" "$INCLUDE_FLUFFY"
|
|
toggle_block "$OUTPUT_FILE" "# \[NGINX_START\]" "# \[NGINX_END\]" "$INCLUDE_NGINX"
|
|
toggle_block "$OUTPUT_FILE" "# \[TRAEFIK_START\]" "# \[TRAEFIK_END\]" "$INCLUDE_TRAEFIK"
|
|
|
|
# Handle Traefik Labels
|
|
if [[ "$INCLUDE_TRAEFIK" == "true" ]]; then
|
|
sed -i "/# \[TRAEFIK_LABELS_START\]/d; /# \[TRAEFIK_LABELS_END\]/d" "$OUTPUT_FILE"
|
|
else
|
|
sed -i "/# \[TRAEFIK_LABELS_START\]/,/# \[TRAEFIK_LABELS_END\]/d" "$OUTPUT_FILE"
|
|
fi
|
|
|
|
log_info "Compose file generated: $OUTPUT_FILE"
|