File size: 1,750 Bytes
c826342
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
27d3b59
 
c826342
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#!/bin/bash

# 1. 讀取 local_config.json
CONFIG_FILE="local_config.json"
PREFIX="vaitor2"

# 不使用 TMP_DIR,直接在專案根目錄產生暫存檔

echo "開始處理 secrets 上傳..."

# 2. 需要處理的 key
KEYS=(
  PASSWORD
  OPEN_AI_KEY
  OPEN_AI_ASSISTANT_ID_GPT4_BOT1
  OPEN_AI_ASSISTANT_ID_GPT3_BOT1
  OPEN_AI_MODERATION_BOT1
  GROQ_API_KEY
  JUTOR_CHAT_KEY
  PERPLEXITY_API_KEY
  GOOGLE_APPLICATION_CREDENTIALS_JSON
  PROXY_USERNAME
  PROXY_PASSWORD
)

# 3. 逐一處理每個 key
for KEY in "${KEYS[@]}"; do
  echo "\n==== 處理 $KEY ===="
  FILENAME="${KEY}.txt"
  VALUE=$(jq -c --raw-output ".${KEY}" "$CONFIG_FILE")

  # 如果是 null 就跳過
  if [[ "$VALUE" == "null" ]]; then
    echo "Skip $KEY (null)"
    continue
  fi

  # 如果是物件(GOOGLE_APPLICATION_CREDENTIALS_JSON),直接存成 JSON
  if [[ "$KEY" == "GOOGLE_APPLICATION_CREDENTIALS_JSON" ]]; then
    echo "$VALUE" > "$FILENAME"
    echo "已將 $KEY 內容存成 JSON 檔 $FILENAME"
  else
    echo -n "$VALUE" > "$FILENAME"
    echo "已將 $KEY 內容存成文字檔 $FILENAME"
  fi

  set -x
  # 建立 secret(如果已存在會失敗,請自行決定是否要先刪除舊的)
  echo "嘗試建立 secret: ${PREFIX}-${KEY}..."
  gcloud secrets create "${PREFIX}-${KEY}" --data-file="$FILENAME" 2>/dev/null

  # 如果已存在就更新
  if [[ $? -ne 0 ]]; then
    echo "Secret ${PREFIX}-${KEY} 已存在,改為 add new version..."
    gcloud secrets versions add "${PREFIX}-${KEY}" --data-file="$FILENAME"
    echo "已為 ${PREFIX}-${KEY} 新增版本"
  else
    echo "Secret ${PREFIX}-${KEY} 已建立"
  fi
  set +x

  # 刪除暫存檔
  rm "$FILENAME"
  echo "$FILENAME 已刪除"
done

echo "\n所有 secrets 已處理完畢!"