59 lines
1.9 KiB
Bash
59 lines
1.9 KiB
Bash
#!/bin/sh
|
|
|
|
# Check if yq is installed
|
|
if ! command -v yq >/dev/null 2>&1; then
|
|
echo "yq is not installed. Install it first (e.g., sudo apt-get install yq)."
|
|
exit 1
|
|
fi
|
|
|
|
# Input YAML file
|
|
YAML_FILE="$1"
|
|
|
|
# Output .env file
|
|
ENV_FILE="$2"
|
|
|
|
# Extract values from YAML using yq
|
|
DB_HOST=$(yq '.database.host // "postgres"' "$YAML_FILE")
|
|
DB_PORT=$(yq '.database.port // "5432"' "$YAML_FILE")
|
|
DB_USER=$(yq '.database.user // "libretime"' "$YAML_FILE")
|
|
DB_PASSWORD=$(yq '.database.password // "libretime"' "$YAML_FILE")
|
|
DB_DATABASE=$(yq '.database.database // "libretime"' "$YAML_FILE")
|
|
|
|
MAIL_HOST=$(yq '.email.host // "localhost"' "$YAML_FILE")
|
|
MAIL_PORT=$(yq '.email.port // "25"' "$YAML_FILE")
|
|
MAIL_USERNAME=$(yq '.email.user // ""' "$YAML_FILE")
|
|
MAIL_PASSWORD=$(yq '.email.password // ""' "$YAML_FILE")
|
|
MAIL_ENCRYPTION=$(yq '.email.encryption // ""' "$YAML_FILE")
|
|
|
|
# Function to update or add a variable in the .env file
|
|
update_env_var() {
|
|
local key="$1"
|
|
local value="$2"
|
|
if grep -q "^$key=" "$ENV_FILE"; then
|
|
# Update existing variable
|
|
sed -i.bak "s|^$key=.*|$key=$value|" "$ENV_FILE"
|
|
else
|
|
# Add new variable
|
|
echo "$key=$value" >> "$ENV_FILE"
|
|
fi
|
|
}
|
|
|
|
# Create or update the .env file with extracted values
|
|
update_env_var "DB_CONNECTION" "postgres"
|
|
update_env_var "DB_HOST" "$DB_HOST"
|
|
update_env_var "DB_PORT" "$DB_PORT"
|
|
update_env_var "DB_DATABASE" "$DB_DATABASE"
|
|
update_env_var "DB_USERNAME" "$DB_USER"
|
|
update_env_var "DB_PASSWORD" "$DB_PASSWORD"
|
|
|
|
update_env_var "MAIL_MAILER" "smtp"
|
|
update_env_var "MAIL_HOST" "$MAIL_HOST"
|
|
update_env_var "MAIL_PORT" "$MAIL_PORT"
|
|
update_env_var "MAIL_USERNAME" "$MAIL_USERNAME"
|
|
update_env_var "MAIL_PASSWORD" "$MAIL_PASSWORD"
|
|
update_env_var "MAIL_ENCRYPTION" "$MAIL_ENCRYPTION"
|
|
update_env_var "MAIL_FROM_ADDRESS" "\"hello@example.com\""
|
|
update_env_var "MAIL_FROM_NAME" "${APP_NAME}"
|
|
|
|
echo ".env file has been created/updated successfully."
|