utils/env-gen.sh

41 lines
1.5 KiB
Bash
Raw Normal View History

2024-07-27 04:15:43 +05:00
#!/bin/bash
# Проверка наличия первого параметра
if [ -z "$1" ]; then
echo "Использование: $0азвание_переменной> [значение]"
exit 1
fi
VARIABLE_NAME=$1
ENV_FILE="/data/secrets/$SERVER_DOMAIN/$SERVER_DOMAIN.env"
# Генерация случайного пароля из цифр и маленьких латинских букв длиной 20 символов
generate_random_password() {
#tr -dc 'a-z0-9' </dev/urandom | head -c 20
pwgen -s 20 1
}
# Если указан второй параметр, используем его в качестве значения переменной
if [ -n "$2" ]; then
VALUE=$2
else
VALUE=$(generate_random_password)
fi
# Создание .env файла, если он не существует
if [ ! -f "$ENV_FILE" ]; then
# Создание директорий, если они не существуют
mkdir -p "$(dirname "$ENV_FILE")"
touch "$ENV_FILE"
fi
# Обновление или добавление переменной в .env файл
if grep -q "^$VARIABLE_NAME=" "$ENV_FILE"; then
# Переменная существует, обновляем её значение
sed -i "s/^$VARIABLE_NAME=.*/$VARIABLE_NAME=$VALUE/" "$ENV_FILE"
else
# Переменная не существует, добавляем её в файл
echo "$VARIABLE_NAME=$VALUE" >> "$ENV_FILE"
fi
echo "Переменная $VARIABLE_NAME успешно обновлена/добавлена в $ENV_FILE"