This commit is contained in:
Ubuntu
2024-07-24 14:11:40 +00:00
parent 3823cd85a8
commit 9cd1409df3
297 changed files with 1183 additions and 745 deletions

View File

@ -184,3 +184,55 @@ Title(){
EchoCyan "== $1 $finligne"
echo
}
# Fonction pour fusionner plusieurs fichiers .env
mergeenv() {
# Vérifier si au moins deux fichiers .env sont fournis
if [ "$#" -lt 2 ]; then
echo "Usage: merge_env_files output_file .env_file1 .env_file2 [additional .env files...]"
return 1
fi
# Le premier argument est le fichier de sortie
output_file=$1
shift
# Déclaration des structures de données pour stocker les variables et maintenir l'ordre
declare -A env_vars
declare -a env_keys
# Fonction pour lire un fichier .env et mettre à jour les structures de données
read_env_file() {
local env_file=$1
# Lire chaque ligne du fichier .env
while IFS='=' read -r key value; do
# Ignorer les lignes vides et les commentaires
[[ -z "$key" || "$key" =~ ^# ]] && continue
# Vérifier si la variable existe déjà
if [[ -z "${env_vars[$key]}" ]]; then
# Ajouter la clé à la liste des clés si elle n'existe pas encore
env_keys+=("$key")
fi
# Mettre à jour le tableau associatif
env_vars["$key"]="$value"
done < "$env_file"
}
# Lire chaque fichier .env et mettre à jour les structures de données
for env_file in "$@"; do
if [ -f "$env_file" ]; then
read_env_file "$env_file"
fi
done
# Écrire les variables dans le fichier de sortie dans l'ordre d'apparition
{
for key in "${env_keys[@]}"; do
echo "$key=${env_vars[$key]}"
done
} > "$output_file"
}