feat(vscode): добавлена автоматическая настройка прокси в WSL
- Зачем: - обеспечить корректную работу расширений VS Code через прокси-сервер без ручной правки переменных окружения. - Что: - обновлен скрипт `server-env-setup`: добавлена проверка доступности `hproxy.local` через `getent`. - реализован автоматический экспорт переменных `HTTP_PROXY`, `HTTPS_PROXY`, `ALL_PROXY` и `NO_PROXY` (в обоих регистрах). - комментарии в скрипте переведены на русский язык. - в политики Gemini (`readonly-commands.toml`) добавлены разрешения для команд `ls`, `echo` и `[`. - Проверка: - запуск `env | grep -i proxy` в терминале VS Code после перезагрузки окна.
This commit is contained in:
1 parent
2cefb484f6
commit
c4484b8ce3
2 files changed
+41
-8
No files matched your search
@@ -126,12 +126,30 @@ commandPrefix = "tail "
|
|||||||
decision = "allow"
|
decision = "allow"
|
||||||
priority = 100
|
priority = 100
|
||||||
|
|
||||||
|
[[rule]]
|
||||||
|
toolName = "run_shell_command"
|
||||||
|
commandPrefix = "ls "
|
||||||
|
decision = "allow"
|
||||||
|
priority = 100
|
||||||
|
|
||||||
[[rule]]
|
[[rule]]
|
||||||
toolName = "run_shell_command"
|
toolName = "run_shell_command"
|
||||||
commandPrefix = "cat "
|
commandPrefix = "cat "
|
||||||
decision = "allow"
|
decision = "allow"
|
||||||
priority = 100
|
priority = 100
|
||||||
|
|
||||||
|
[[rule]]
|
||||||
|
toolName = "run_shell_command"
|
||||||
|
commandPrefix = "echo "
|
||||||
|
decision = "allow"
|
||||||
|
priority = 100
|
||||||
|
|
||||||
|
[[rule]]
|
||||||
|
toolName = "run_shell_command"
|
||||||
|
commandPrefix = "[ "
|
||||||
|
decision = "allow"
|
||||||
|
priority = 100
|
||||||
|
|
||||||
[[rule]]
|
[[rule]]
|
||||||
toolName = "run_shell_command"
|
toolName = "run_shell_command"
|
||||||
commandPrefix = "sed -n "
|
commandPrefix = "sed -n "
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
# VS Code WSL server startup hook.
|
# Хук запуска сервера VS Code в WSL.
|
||||||
# Loads private environment variables from ~/.env.secrets if available.
|
# Загружает приватные переменные окружения и настраивает прокси, если доступен hproxy.local.
|
||||||
|
|
||||||
secrets_file="$HOME/.env.secrets"
|
secrets_file="$HOME/.env.secrets"
|
||||||
|
|
||||||
@@ -9,14 +9,29 @@ warn() {
|
|||||||
printf 'server-env-setup: %s\n' "$1" >&2
|
printf 'server-env-setup: %s\n' "$1" >&2
|
||||||
}
|
}
|
||||||
|
|
||||||
if [ ! -f "$secrets_file" ]; then
|
# 1. Загрузка приватных секретов (API ключи и т.д.)
|
||||||
warn "warning: $secrets_file not found; starting without extra secrets."
|
if [ -f "$secrets_file" ]; then
|
||||||
return 0 2>/dev/null || exit 0
|
# shellcheck disable=SC1090
|
||||||
|
if ! source "$secrets_file"; then
|
||||||
|
warn "warning: не удалось загрузить $secrets_file"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# shellcheck disable=SC1090
|
# 2. Автоматическая настройка прокси, если hproxy.local резолвится
|
||||||
if ! source "$secrets_file"; then
|
# Используем getent, так как имя может быть в /etc/hosts или в DNS (режим mirror)
|
||||||
warn "warning: failed to source $secrets_file; starting without extra secrets."
|
if getent hosts hproxy.local >/dev/null 2>&1; then
|
||||||
|
proxy_url="http://hproxy.local:12334"
|
||||||
|
|
||||||
|
export HTTP_PROXY="$proxy_url"
|
||||||
|
export HTTPS_PROXY="$proxy_url"
|
||||||
|
export ALL_PROXY="socks5://hproxy.local:12334"
|
||||||
|
export NO_PROXY="hproxy.local,localhost,127.0.0.1"
|
||||||
|
|
||||||
|
# Дублируем в нижнем регистре для лучшей совместимости с инструментами
|
||||||
|
export http_proxy="$HTTP_PROXY"
|
||||||
|
export https_proxy="$HTTPS_PROXY"
|
||||||
|
export all_proxy="$ALL_PROXY"
|
||||||
|
export no_proxy="$NO_PROXY"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
return 0 2>/dev/null || exit 0
|
return 0 2>/dev/null || exit 0
|
||||||
Reference in new issue
Block a user