Files
dotfiles/vscode/.vscode-server/server-env-setup
T
Dmitry DementievandClaude Opus 5 80db31aa57 fix(proxy): выровнены списки исключений во всех профилях
- Зачем:
  - копии списка в профилях разошлись: в PowerShell и VS Code не хватало
    ::1 и [::1], из-за чего один и тот же хост то шёл мимо прокси, то нет.
- Что:
  - profile.ps1 и server-env-setup приведены к выдаче proxy-client.
  - добавлен tests/test_proxy_env_sync.py — сверяет каждую копию с эталоном
    DEFAULT_NO_PROXY_EXTRA и списки обхода Windows между собой.
  - в файлах-копиях и README указан эталон и тест, который ловит расхождение.
- Проверка:
  - python3 tests/test_proxy_env_sync.py (2 OK, на подложенном расхождении падает).
  - python3 tests/test_proxy_client.py (54 OK), bash tests/test_proxy_launchers.sh (8 PASS).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-26 22:33:36 +03:00

40 lines
1.6 KiB
Bash
Executable File

#!/usr/bin/env bash
# Хук запуска сервера VS Code в WSL.
# Загружает приватные переменные окружения и настраивает прокси, если доступен hproxy.local.
secrets_file="$HOME/.env.secrets"
warn() {
printf 'server-env-setup: %s\n' "$1" >&2
}
# 1. Загрузка приватных секретов (API ключи и т.д.)
if [ -f "$secrets_file" ]; then
# shellcheck disable=SC1090
if ! source "$secrets_file"; then
warn "warning: не удалось загрузить $secrets_file"
fi
fi
# 2. Автоматическая настройка прокси, если hproxy.local резолвится
# Используем getent, так как имя может быть в /etc/hosts или в DNS (режим mirror)
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"
# Список обязан совпадать с выдачей proxy-client (DEFAULT_NO_PROXY_EXTRA);
# расхождение ловит tests/test_proxy_env_sync.py.
export NO_PROXY="hproxy.local,localhost,127.0.0.1,::1,[::1],.concept-software.ru,dementev.space,.dementev.space"
# Дублируем в нижнем регистре для лучшей совместимости с инструментами
export http_proxy="$HTTP_PROXY"
export https_proxy="$HTTPS_PROXY"
export all_proxy="$ALL_PROXY"
export no_proxy="$NO_PROXY"
fi
return 0 2>/dev/null || exit 0