- Зачем:
- 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>
21 lines
608 B
Bash
Executable File
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
|