#!/bin/bash # Usage: ./customize.sh dev|qa|prod echo "tetst" $IMAGE_TAG_backend ENV=$1 VALUES_DIR="env/$ENV" PROPERTIES_FILE="properties.env" YAML_DIR="kubernetes" # Ricava il nome progetto dalle variabili esposte da Gitea/GitHub Actions. # Fallback locale: nome della directory del repository. PROJECT_NAME="${GITHUB_REPOSITORY_NAME:-${GITEA_REPOSITORY_NAME:-}}" if [ -z "$PROJECT_NAME" ] && [ -n "${GITHUB_REPOSITORY:-}" ]; then PROJECT_NAME="${GITHUB_REPOSITORY##*/}" fi if [ -z "$PROJECT_NAME" ] && [ -n "${GITEA_REPOSITORY:-}" ]; then PROJECT_NAME="${GITEA_REPOSITORY##*/}" fi if [ -z "$PROJECT_NAME" ]; then PROJECT_NAME=$(basename "$(git rev-parse --show-toplevel 2>/dev/null || pwd)") fi # Estrai l'hash completo del commit e crea una variabile temporanea per la sostituzione TAG=$(git rev-parse HEAD) TMP_TAG_FILE=$(mktemp) TMP_VALUES_FILE=$(mktemp) echo "TAG=$TAG" > "$TMP_TAG_FILE" cat ./imglist >> "$TMP_TAG_FILE" if [ ! -d "$VALUES_DIR" ] || ! ls "$VALUES_DIR"/*.env &>/dev/null; then echo "Nessun file .env trovato in $VALUES_DIR" exit 1 fi if [ ! -f "$PROPERTIES_FILE" ]; then echo "File $PROPERTIES_FILE non trovato." exit 1 fi # Costruisce il nome del namespace come - NAMESPACE="${PROJECT_NAME}-${ENV}" # Crea una lista key=value temporanea partendo da tutti i file *.env in env/$ENV e aggiunge env dinamico > "$TMP_VALUES_FILE" for env_file in "$VALUES_DIR"/*.env; do cat "$env_file" >> "$TMP_VALUES_FILE" printf '\n' >> "$TMP_VALUES_FILE" done printf '\nenv=%s\n' "$ENV" >> "$TMP_VALUES_FILE" printf 'namespace=%s\n' "$NAMESPACE" >> "$TMP_VALUES_FILE" printf 'project=%s\n' "$PROJECT_NAME" >> "$TMP_VALUES_FILE" # Ricava endpoint se presente e genera le variabili derivate per le sostituzioni YAML. ENDPOINT_VAL=$(grep -E '^[[:space:]]*endpoint[[:space:]]*=' "$TMP_VALUES_FILE" "$PROPERTIES_FILE" 2>/dev/null | tail -n 1 | sed -E 's/.*endpoint[[:space:]]*=[[:space:]]*//' | tr -d '\r\n[:space:]"' || true) if [ -n "$ENDPOINT_VAL" ]; then ENDPOINT_NODOT=$(echo "$ENDPOINT_VAL" | tr '.' '-') ENDPOINT_NOSPACE=$(echo "$ENDPOINT_VAL" | tr -d '.') printf 'endpoint-nodot=%s\n' "$ENDPOINT_NODOT" >> "$TMP_VALUES_FILE" printf 'endpoint-nospace=%s\n' "$ENDPOINT_NOSPACE" >> "$TMP_VALUES_FILE" fi # Trova tutti i file .yaml nella directory kubernetes e sottodirectory find "$YAML_DIR" -type f -name "*.yaml" | while read YAML_FILE; do while IFS='=' read -r key value; do sed -i "s|<$key>|$value|g" "$YAML_FILE" done < "$TMP_VALUES_FILE" while IFS='=' read -r key value; do sed -i "s|<$key>|$value|g" "$YAML_FILE" done < "$PROPERTIES_FILE" # Sostituzione dinamica della chiave TAG while IFS='=' read -r key value; do sed -i "s|<$key>|$value|g" "$YAML_FILE" done < "$TMP_TAG_FILE" echo "Sostituzione completata per file $YAML_FILE ambiente $ENV." cat $YAML_FILE done cat "$TMP_VALUES_FILE" rm -f "$TMP_TAG_FILE" "$TMP_VALUES_FILE"