Files
dotfiles/scripts/setup-hproxy.sh
T
ddadminandClaude Opus 4.6 898db1098d refactor(wsl): унифицирована логика hproxy.local и добавлена миграция legacy boot command
- Зачем:
  - setup-hproxy.sh удалял запись из hosts до проверки gateway — при ошибке hosts ломался.
  - update_hproxy() дублировала логику скрипта с багами и не тестировалась.
  - legacy inline boot command в wsl.conf не мигрировался автоматически.
- Что:
  - setup-hproxy.sh: безопасный порядок (gateway → hosts), set -e, экранированная точка в sed.
  - update_hproxy() заменена на thin wrapper с проверкой wsl.conf и ошибок sudo.
  - install.sh: интерактивная замена legacy boot command, детекция существующих [boot] command,
    принимает русскую «у» наравне с «y».
  - README.md: описаны три сценария (WSL NAT, WSL mirrored — host-side resolution, native Linux).
  - добавлены тесты: existing boot command preserved, legacy command migration hint.
- Проверка:
  - bash tests/test_install.sh
  - ./install.sh (интерактивно, ответить «y» на миграцию legacy command)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 19:42:50 +03:00

21 lines
608 B
Bash
Executable File

#!/bin/sh
# Прописывает hproxy.local в /etc/hosts (WSL NAT mode).
# Gateway IP WSL = адрес хоста, на котором слушает прокси.
#
# Использование:
# Вручную: sudo ./setup-hproxy.sh
# При старте WSL — добавить в /etc/wsl.conf:
# [boot]
# command = "/path/to/setup-hproxy.sh"
set -e
gateway=$(ip route show default | awk '{print $3}')
if [ -z "$gateway" ]; then
echo "setup-hproxy: no default gateway" >&2
exit 1
fi
sed -i '/hproxy\.local/d' /etc/hosts
printf '%s hproxy.local\n' "$gateway" >> /etc/hosts