# Инструменты

Rediacc включает инструменты для повышения продуктивности при работе с удалёнными репозиториями: синхронизация файлов, SSH-терминал, интеграция с VS Code и обновление CLI.

## Синхронизация файлов (sync)

Передача файлов между вашей рабочей станцией и удалённым репозиторием через rsync по SSH.

### Загрузка файлов на сервер

```bash
rdc repo sync upload -m server-1 -r my-app --local ./src --remote /app/src
```

### Скачивание файлов с сервера

```bash
rdc repo sync download -m server-1 -r my-app --remote /app/data --local ./data
```

### Проверка статуса синхронизации

```bash
rdc repo sync status -m server-1 -r my-app
```

### Параметры

| Параметр | Описание |
|----------|----------|
| `-m, --machine <name>` | Целевая машина |
| `-r, --repository <name>` | Целевой репозиторий |
| `--local <path>` | Путь к локальному каталогу |
| `--remote <path>` | Удалённый путь (относительно точки монтирования репозитория) |
| `--dry-run` | Предварительный просмотр изменений без передачи |
| `--mirror` | Зеркалирование источника в место назначения (удаление лишних файлов) |
| `--verify` | Проверка контрольных сумм после передачи |
| `--confirm` | Интерактивное подтверждение с детальным просмотром |
| `--exclude <patterns...>` | Исключение шаблонов файлов |
| `--skip-router-restart` | Пропустить перезапуск сервера маршрутизации после операции |

## SSH-терминал (term)

Открытие интерактивной SSH-сессии к машине или в среду репозитория.

### Сокращённый синтаксис

Самый быстрый способ подключения:

```bash
rdc term connect -m server-1                    # Подключение к машине
rdc term connect -m server-1 -r my-app             # Подключение к репозиторию
```

### Выполнение команды

Выполнение команды без открытия интерактивной сессии:

```bash
rdc term connect -m server-1 -c "uptime"
rdc term connect -m server-1 -r my-app -c "docker ps"
```

При подключении к репозиторию переменная `DOCKER_HOST` автоматически указывает на изолированный Docker-сокет репозитория, поэтому `docker ps` показывает только контейнеры этого репозитория.

### Подкоманда connect

Подкоманда `connect` предоставляет ту же функциональность с явными флагами:

```bash
rdc term connect -m server-1
rdc term connect -m server-1 -r my-app
```

### Действия с контейнерами

Прямое взаимодействие с работающим контейнером:

```bash
# Открыть оболочку внутри контейнера
rdc term connect -m server-1 -r my-app --container <container-id>

# Просмотр логов контейнера
rdc term connect -m server-1 -r my-app --container <container-id> --container-action logs

# Следить за логами в реальном времени
rdc term connect -m server-1 -r my-app --container <container-id> --container-action logs --follow

# Просмотр статистики контейнера
rdc term connect -m server-1 -r my-app --container <container-id> --container-action stats

# Выполнить команду в контейнере
rdc term connect -m server-1 -r my-app --container <container-id> --container-action exec -c "ls -la"
```

| Параметр | Описание |
|----------|----------|
| `--container <id>` | Идентификатор целевого Docker-контейнера |
| `--container-action <action>` | Действие: `terminal` (по умолчанию), `logs`, `stats`, `exec` |
| `--log-lines <n>` | Количество строк логов для отображения (по умолчанию: 50) |
| `--follow` | Непрерывное отслеживание логов |
| `--external` | Использовать внешний терминал вместо встроенного SSH |

## Интеграция с VS Code (vscode)

Открытие удалённой SSH-сессии в VS Code с предварительно настроенными параметрами SSH.

### Подключение к репозиторию

```bash
rdc vscode connect -r my-app -m server-1
```

Эта команда:
1. Определяет вашу установку VS Code
2. Настраивает SSH-соединение в `~/.ssh/config`
3. Сохраняет SSH-ключ для сессии
4. Открывает VS Code с подключением Remote SSH к пути репозитория

### Список настроенных подключений

```bash
rdc vscode list
```

### Очистка подключений

```bash
rdc vscode cleanup
```

Удаляет конфигурации SSH для VS Code, которые больше не нужны.

### Проверка конфигурации

```bash
rdc vscode check
```

Проверяет установку VS Code, расширение Remote SSH и активные подключения.

> **Необходимое условие:** Установите расширение [Remote - SSH](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-ssh) в VS Code.

## Обновление CLI (update)

Поддержание `rdc` CLI в актуальном состоянии.

### Проверка обновлений

```bash
rdc update --check-only
```

### Применение обновления

```bash
rdc update
```

Обновления загружаются и применяются на месте. CLI автоматически выбирает подходящий бинарный файл для вашей платформы (Linux, macOS или Windows). Новая версия вступает в силу при следующем запуске.

### Откат

```bash
rdc update --rollback
```

Возврат к ранее установленной версии. Доступен только после применения обновления.

### Статус обновления

```bash
rdc update --status
```

Отображает текущую версию, канал обновлений и конфигурацию автообновления.

#### Каналы выпуска

```bash
rdc update --channel edge      # Новейшие функции, часто обновляется
rdc update --channel stable    # Релизы для продакшена (по умолчанию)
rdc update --status            # Показать текущий канал и информацию о версии
```