feat(vscode): добавлен server-env-setup для WSL и загрузки секретов
- Зачем: - требуется передавать переменные из ~/.env.secrets в окружение VS Code Server в WSL. - Что: - добавлен stow-пакет vscode с файлом ~/.vscode-server/server-env-setup. - реализована загрузка ~/.env.secrets через source в режиме fail-open с warning в stderr. - обновлен README: раздел VS Code (WSL), установка через stow/вручную, reconnect и обработка конфликтов. - Проверка: - bash -n vscode/.vscode-server/server-env-setup. - stow -nvt ~ vscode. - запуск скрипта с валидным, отсутствующим и битым ~/.env.secrets в изолированном HOME.
This commit is contained in:
1 parent
245b69d992
commit
d357e743fa
2 files changed
+67
-16
No files matched your search
@@ -34,6 +34,12 @@
|
||||
- **Директория:** `zed/.config/zed/`
|
||||
- Структура для конфигурации Zed редактора
|
||||
|
||||
### VS Code (WSL)
|
||||
- **Файл:** `vscode/.vscode-server/server-env-setup`
|
||||
- Поддержка `~/.vscode-server/server-env-setup` для VS Code Server в WSL
|
||||
- Подгрузка `~/.env.secrets` для расширений, задач/debug и терминалов VS Code
|
||||
- Режим `fail-open`: при проблеме с файлом выводится warning, запуск VS Code не блокируется
|
||||
|
||||
### Opencode
|
||||
- **Директория:** `opencode/.config/opencode/`
|
||||
- Конфигурация AI-ассистента opencode с MCP-серверами:
|
||||
@@ -59,6 +65,22 @@
|
||||
|
||||
## 🚀 Установка
|
||||
|
||||
### Stow (рекомендуется)
|
||||
|
||||
```bash
|
||||
# Установка stow
|
||||
sudo apt install stow
|
||||
|
||||
# Применение конфигов
|
||||
cd /path/to/dotfiles
|
||||
stow bash tmux vim zed vscode agents opencode codex claude
|
||||
```
|
||||
|
||||
Важно: `bash` пакет кладет файлы `~/.bash_custom`, `~/.bash_functions`, `~/.bash_prompt`. Убедитесь, что ваш `~/.bashrc` содержит строку:
|
||||
```bash
|
||||
[ -f ~/.bash_custom ] && source ~/.bash_custom
|
||||
```
|
||||
|
||||
### Ручная установка
|
||||
|
||||
```bash
|
||||
@@ -82,6 +104,11 @@ cp vim/.vimrc ~/
|
||||
mkdir -p ~/.config/zed
|
||||
cp zed/.config/zed/* ~/.config/zed/ 2>/dev/null || true
|
||||
|
||||
# VS Code (WSL)
|
||||
mkdir -p ~/.vscode-server
|
||||
cp vscode/.vscode-server/server-env-setup ~/.vscode-server/server-env-setup
|
||||
chmod +x ~/.vscode-server/server-env-setup
|
||||
|
||||
# Opencode
|
||||
mkdir -p ~/.config/opencode
|
||||
cp opencode/.config/opencode/* ~/.config/opencode/
|
||||
@@ -99,22 +126,6 @@ mkdir -p ~/.claude
|
||||
ln -snf ~/.agents/skills ~/.claude/skills
|
||||
```
|
||||
|
||||
### Stow (рекомендуется для Linux/WSL)
|
||||
|
||||
```bash
|
||||
# Установка stow
|
||||
sudo apt install stow
|
||||
|
||||
# Применение конфигов
|
||||
cd /path/to/dotfiles
|
||||
stow bash tmux vim zed agents opencode codex claude
|
||||
```
|
||||
|
||||
Важно: `bash` пакет кладет файлы `~/.bash_custom`, `~/.bash_functions`, `~/.bash_prompt`. Убедитесь, что ваш `~/.bashrc` содержит строку:
|
||||
```bash
|
||||
[ -f ~/.bash_custom ] && source ~/.bash_custom
|
||||
```
|
||||
|
||||
### Windows (chezmoi)
|
||||
|
||||
Для Windows используется [chezmoi](https://www.chezmoi.io/) — кросс-платформенный менеджер dotfiles.
|
||||
@@ -202,4 +213,22 @@ export ZAI_API_KEY="your_zai_api_key_here"
|
||||
|
||||
Файл `~/.env.secrets` автоматически подгружается при старте shell.
|
||||
|
||||
### VS Code Server в WSL
|
||||
|
||||
Для VS Code в WSL используется файл `~/.vscode-server/server-env-setup`.
|
||||
В этом репозитории он находится в `vscode/.vscode-server/server-env-setup` и подгружает `~/.env.secrets` в окружение VS Code Server.
|
||||
|
||||
После установки/обновления файла сделайте одно из действий:
|
||||
- `Developer: Reload Window` в VS Code
|
||||
- или `Remote-WSL: Reconnect to WSL`
|
||||
|
||||
Если у вас уже есть локальный `~/.vscode-server/server-env-setup`, stow может сообщить конфликт.
|
||||
Тогда сохраните старую версию и примените stow повторно:
|
||||
```bash
|
||||
mv ~/.vscode-server/server-env-setup ~/.vscode-server/server-env-setup.bak.$(date +%Y%m%d%H%M%S)
|
||||
stow -vt ~ vscode
|
||||
```
|
||||
|
||||
Скрипт работает в режиме `fail-open`: если `~/.env.secrets` отсутствует или содержит ошибку, VS Code продолжит запуск, а warning появится в логах.
|
||||
|
||||
См. `.env.example` для дополнительной информации.
|
||||
Executable
+22
@@ -0,0 +1,22 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# VS Code WSL server startup hook.
|
||||
# Loads private environment variables from ~/.env.secrets if available.
|
||||
|
||||
secrets_file="$HOME/.env.secrets"
|
||||
|
||||
warn() {
|
||||
printf 'server-env-setup: %s\n' "$1" >&2
|
||||
}
|
||||
|
||||
if [ ! -f "$secrets_file" ]; then
|
||||
warn "warning: $secrets_file not found; starting without extra secrets."
|
||||
return 0 2>/dev/null || exit 0
|
||||
fi
|
||||
|
||||
# shellcheck disable=SC1090
|
||||
if ! source "$secrets_file"; then
|
||||
warn "warning: failed to source $secrets_file; starting without extra secrets."
|
||||
fi
|
||||
|
||||
return 0 2>/dev/null || exit 0
|
||||
Reference in new issue
Block a user