Selaa lähdekoodia

Интерактивный ввод YANDEX_MAPS_API_KEY и CloudPayments в deploy-remote.sh

- prompt_for_yandex_key(): спрашивает ключ при запуске если не задан
- prompt_for_cloudpayments(): опционально спрашивает публичный ID и секрет
- Автосохранение в env.prod через sed
- Не нужно редактировать файл вручную
neyrogovnarik 1 kuukausi sitten
vanhempi
sitoutus
c72f4ff840
1 muutettua tiedostoa jossa 56 lisäystä ja 0 poistoa
  1. 56 0
      deploy/deploy-remote.sh

+ 56 - 0
deploy/deploy-remote.sh

@@ -116,6 +116,62 @@ setup_env() {
     generate_secret "JWT_REFRESH_SECRET"
     generate_secret "S3_SECRET_KEY"
 
+    # Интерактивный ввод 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
+            if [ -n "$yandex_key" ]; then
+                if [[ "$OSTYPE" == "darwin"* ]]; then
+                    sed -i '' "s/^YANDEX_MAPS_API_KEY=.*/YANDEX_MAPS_API_KEY=${yandex_key}/" "$ENV_FILE"
+                else
+                    sed -i "s/^YANDEX_MAPS_API_KEY=.*/YANDEX_MAPS_API_KEY=${yandex_key}/" "$ENV_FILE"
+                fi
+                export YANDEX_MAPS_API_KEY="$yandex_key"
+                log_ok "YANDEX_MAPS_API_KEY сохранён"
+            else
+                log_warn "Ключ пропущен — карты не будут работать. Добавьте позже в $ENV_FILE"
+            fi
+        fi
+    }
+
+    prompt_for_yandex_key
+
+    # Интерактивный ввод CloudPayments (опционально)
+    prompt_for_cloudpayments() {
+        local public_id="${CLOUDPAYMENTS_PUBLIC_ID:-}"
+        local api_secret="${CLOUDPAYMENTS_API_SECRET:-}"
+        if [ -z "$public_id" ] || [ -z "$api_secret" ]; then
+            echo
+            log_info "CloudPayments (опционально, для платежей):"
+            echo -n "CLOUDPAYMENTS_PUBLIC_ID (Enter чтобы пропустить): "
+            read -r cp_public
+            if [ -n "$cp_public" ]; then
+                if [[ "$OSTYPE" == "darwin"* ]]; then
+                    sed -i '' "s/^CLOUDPAYMENTS_PUBLIC_ID=.*/CLOUDPAYMENTS_PUBLIC_ID=${cp_public}/" "$ENV_FILE"
+                else
+                    sed -i "s/^CLOUDPAYMENTS_PUBLIC_ID=.*/CLOUDPAYMENTS_PUBLIC_ID=${cp_public}/" "$ENV_FILE"
+                fi
+                export CLOUDPAYMENTS_PUBLIC_ID="$cp_public"
+            fi
+            echo -n "CLOUDPAYMENTS_API_SECRET (Enter чтобы пропустить): "
+            read -r cp_secret
+            if [ -n "$cp_secret" ]; then
+                if [[ "$OSTYPE" == "darwin"* ]]; then
+                    sed -i '' "s/^CLOUDPAYMENTS_API_SECRET=.*/CLOUDPAYMENTS_API_SECRET=${cp_secret}/" "$ENV_FILE"
+                else
+                    sed -i "s/^CLOUDPAYMENTS_API_SECRET=.*/CLOUDPAYMENTS_API_SECRET=${cp_secret}/" "$ENV_FILE"
+                fi
+                export CLOUDPAYMENTS_API_SECRET="$cp_secret"
+            fi
+        fi
+    }
+
+    prompt_for_cloudpayments
+
     # Проверка обязательных переменных
     local required=("DB_PASSWORD" "REDIS_PASSWORD" "JWT_SECRET" "JWT_REFRESH_SECRET" "S3_SECRET_KEY" "YANDEX_MAPS_API_KEY")
     local missing=()