Spaces:
Running
Running
Update start.sh
Browse files
start.sh
CHANGED
|
@@ -22,7 +22,6 @@ fi
|
|
| 22 |
|
| 23 |
mkdir -p "$WORKDIR" "$EXT_DIR" "$USER_DATA_DIR" "${HOME}/.config/code-server" "$CODEX_DIR"
|
| 24 |
|
| 25 |
-
# code-server config
|
| 26 |
cat > "${HOME}/.config/code-server/config.yaml" <<EOF
|
| 27 |
bind-addr: 0.0.0.0:${PORT}
|
| 28 |
auth: password
|
|
@@ -43,7 +42,6 @@ fi
|
|
| 43 |
: "${CODEX_DISABLE_RESPONSE_STORAGE:=true}"
|
| 44 |
: "${CODEX_WSL_ACK:=true}"
|
| 45 |
: "${CODEX_VERBOSITY:=high}"
|
| 46 |
-
|
| 47 |
: "${CODEX_PROVIDER_NAME:=sub2api}"
|
| 48 |
: "${CODEX_BASE_URL:=https://ai.qaq.al}"
|
| 49 |
: "${CODEX_WIRE_API:=responses}"
|
|
@@ -65,7 +63,6 @@ wire_api = "${CODEX_WIRE_API}"
|
|
| 65 |
requires_openai_auth = ${CODEX_REQUIRES_OPENAI_AUTH}
|
| 66 |
EOF
|
| 67 |
|
| 68 |
-
# Codex auth.json
|
| 69 |
if [[ -n "${CODEX_AUTH_JSON:-}" ]]; then
|
| 70 |
printf '%s\n' "${CODEX_AUTH_JSON}" > "${CODEX_DIR}/auth.json"
|
| 71 |
elif [[ -n "${OPENAI_API_KEY:-}" ]]; then
|
|
@@ -74,8 +71,6 @@ elif [[ -n "${OPENAI_API_KEY:-}" ]]; then
|
|
| 74 |
"OPENAI_API_KEY": "${OPENAI_API_KEY}"
|
| 75 |
}
|
| 76 |
EOF
|
| 77 |
-
else
|
| 78 |
-
echo "[WARN] OPENAI_API_KEY / CODEX_AUTH_JSON not found. auth.json not generated."
|
| 79 |
fi
|
| 80 |
|
| 81 |
chmod 600 "${CODEX_DIR}/config.toml" 2>/dev/null || true
|
|
@@ -86,6 +81,33 @@ if [[ "${CODEX_DIR}" != "${HOME}/.codex" ]]; then
|
|
| 86 |
ln -s "${CODEX_DIR}" "${HOME}/.codex"
|
| 87 |
fi
|
| 88 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 89 |
echo "[INFO] Java: $(java -version 2>&1 | head -n1 || true)"
|
| 90 |
echo "[INFO] Python: $(python --version || true)"
|
| 91 |
echo "[INFO] Pip: $(pip --version || true)"
|
|
|
|
| 22 |
|
| 23 |
mkdir -p "$WORKDIR" "$EXT_DIR" "$USER_DATA_DIR" "${HOME}/.config/code-server" "$CODEX_DIR"
|
| 24 |
|
|
|
|
| 25 |
cat > "${HOME}/.config/code-server/config.yaml" <<EOF
|
| 26 |
bind-addr: 0.0.0.0:${PORT}
|
| 27 |
auth: password
|
|
|
|
| 42 |
: "${CODEX_DISABLE_RESPONSE_STORAGE:=true}"
|
| 43 |
: "${CODEX_WSL_ACK:=true}"
|
| 44 |
: "${CODEX_VERBOSITY:=high}"
|
|
|
|
| 45 |
: "${CODEX_PROVIDER_NAME:=sub2api}"
|
| 46 |
: "${CODEX_BASE_URL:=https://ai.qaq.al}"
|
| 47 |
: "${CODEX_WIRE_API:=responses}"
|
|
|
|
| 63 |
requires_openai_auth = ${CODEX_REQUIRES_OPENAI_AUTH}
|
| 64 |
EOF
|
| 65 |
|
|
|
|
| 66 |
if [[ -n "${CODEX_AUTH_JSON:-}" ]]; then
|
| 67 |
printf '%s\n' "${CODEX_AUTH_JSON}" > "${CODEX_DIR}/auth.json"
|
| 68 |
elif [[ -n "${OPENAI_API_KEY:-}" ]]; then
|
|
|
|
| 71 |
"OPENAI_API_KEY": "${OPENAI_API_KEY}"
|
| 72 |
}
|
| 73 |
EOF
|
|
|
|
|
|
|
| 74 |
fi
|
| 75 |
|
| 76 |
chmod 600 "${CODEX_DIR}/config.toml" 2>/dev/null || true
|
|
|
|
| 81 |
ln -s "${CODEX_DIR}" "${HOME}/.codex"
|
| 82 |
fi
|
| 83 |
|
| 84 |
+
# 首次启动安装扩展(幂等)
|
| 85 |
+
EXT_MARKER="${USER_DATA_DIR}/.extensions_installed"
|
| 86 |
+
if [[ ! -f "${EXT_MARKER}" ]]; then
|
| 87 |
+
echo "[INFO] Installing extensions on first boot..."
|
| 88 |
+
|
| 89 |
+
install_ext() {
|
| 90 |
+
code-server --extensions-dir "${EXT_DIR}" --install-extension "$1" || true
|
| 91 |
+
}
|
| 92 |
+
|
| 93 |
+
# 你指定的 3 个(尽量装)
|
| 94 |
+
install_ext ms-vscode.cpptools-extension-pack
|
| 95 |
+
install_ext danielpinto8zz6.c-cpp-compile-run
|
| 96 |
+
install_ext vscjava.vscode-java-pack
|
| 97 |
+
|
| 98 |
+
# Codex
|
| 99 |
+
install_ext openai.chatgpt
|
| 100 |
+
|
| 101 |
+
# 若微软扩展不可用,装稳定替代
|
| 102 |
+
install_ext llvm-vs-code-extensions.vscode-clangd
|
| 103 |
+
install_ext ms-vscode.cmake-tools
|
| 104 |
+
install_ext ms-vscode.makefile-tools
|
| 105 |
+
install_ext vadimcn.vscode-lldb
|
| 106 |
+
install_ext redhat.java
|
| 107 |
+
|
| 108 |
+
touch "${EXT_MARKER}"
|
| 109 |
+
fi
|
| 110 |
+
|
| 111 |
echo "[INFO] Java: $(java -version 2>&1 | head -n1 || true)"
|
| 112 |
echo "[INFO] Python: $(python --version || true)"
|
| 113 |
echo "[INFO] Pip: $(pip --version || true)"
|