41 lines
1.5 KiB
Bash
41 lines
1.5 KiB
Bash
|
#!/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"
|