|
|
@@ -116,14 +116,32 @@ setup_env() {
|
|
|
generate_secret "JWT_REFRESH_SECRET"
|
|
|
generate_secret "S3_SECRET_KEY"
|
|
|
|
|
|
+ # Хелпер для чтения из терминала (работает и при curl | bash)
|
|
|
+ read_from_tty() {
|
|
|
+ local prompt="$1"
|
|
|
+ local var_name="$2"
|
|
|
+ if [ -t 0 ]; then
|
|
|
+ # stdin — терминал
|
|
|
+ echo -n "$prompt"
|
|
|
+ read -r "$var_name"
|
|
|
+ elif [ -e /dev/tty ]; then
|
|
|
+ # stdin — пайп, но есть /dev/tty
|
|
|
+ echo -n "$prompt" > /dev/tty
|
|
|
+ read -r "$var_name" < /dev/tty
|
|
|
+ else
|
|
|
+ # Нет доступа к терминалу
|
|
|
+ log_warn "Нет интерактивного терминала, пропуск ввода $var_name"
|
|
|
+ eval "$var_name=\"\""
|
|
|
+ fi
|
|
|
+ }
|
|
|
+
|
|
|
# Интерактивный ввод YANDEX_MAPS_API_KEY если не задан
|
|
|
prompt_for_yandex_key() {
|
|
|
local current="${YANDEX_MAPS_API_KEY:-}"
|
|
|
if [ -z "$current" ] || [[ "$current" == *"CHANGE_ME"* ]] || [[ "$current" == *"ВАШ_КЛЮЧ"* ]]; then
|
|
|
echo
|
|
|
log_warn "YANDEX_MAPS_API_KEY не задан (нужен для работы карт на фронтенде)"
|
|
|
- echo -n "Введите Яндекс.Карты API ключ (или Enter чтобы пропустить): "
|
|
|
- read -r yandex_key
|
|
|
+ read_from_tty "Введите Яндекс.Карты API ключ (или Enter чтобы пропустить): " yandex_key
|
|
|
if [ -n "$yandex_key" ]; then
|
|
|
if [[ "$OSTYPE" == "darwin"* ]]; then
|
|
|
sed -i '' "s/^YANDEX_MAPS_API_KEY=.*/YANDEX_MAPS_API_KEY=${yandex_key}/" "$ENV_FILE"
|
|
|
@@ -147,8 +165,7 @@ setup_env() {
|
|
|
if [ -z "$public_id" ] || [ -z "$api_secret" ]; then
|
|
|
echo
|
|
|
log_info "CloudPayments (опционально, для платежей):"
|
|
|
- echo -n "CLOUDPAYMENTS_PUBLIC_ID (Enter чтобы пропустить): "
|
|
|
- read -r cp_public
|
|
|
+ read_from_tty "CLOUDPAYMENTS_PUBLIC_ID (Enter чтобы пропустить): " cp_public
|
|
|
if [ -n "$cp_public" ]; then
|
|
|
if [[ "$OSTYPE" == "darwin"* ]]; then
|
|
|
sed -i '' "s/^CLOUDPAYMENTS_PUBLIC_ID=.*/CLOUDPAYMENTS_PUBLIC_ID=${cp_public}/" "$ENV_FILE"
|
|
|
@@ -157,8 +174,7 @@ setup_env() {
|
|
|
fi
|
|
|
export CLOUDPAYMENTS_PUBLIC_ID="$cp_public"
|
|
|
fi
|
|
|
- echo -n "CLOUDPAYMENTS_API_SECRET (Enter чтобы пропустить): "
|
|
|
- read -r cp_secret
|
|
|
+ read_from_tty "CLOUDPAYMENTS_API_SECRET (Enter чтобы пропустить): " cp_secret
|
|
|
if [ -n "$cp_secret" ]; then
|
|
|
if [[ "$OSTYPE" == "darwin"* ]]; then
|
|
|
sed -i '' "s/^CLOUDPAYMENTS_API_SECRET=.*/CLOUDPAYMENTS_API_SECRET=${cp_secret}/" "$ENV_FILE"
|