svg
This commit is contained in:
@ -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"
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user