You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Merge pull request #203 from easyp-tech/feature/config-validation2
## Что сделано
Добавлена команда `validate-config` (алиас: `validate`) для отдельной валидации `easyp.yaml` без запуска `lint/generate`.
Основные изменения:
- Добавлен CLI-хендлер `validate-config`.
- Реализована schema-валидация конфига через `go-yamlvalidator`.
- Добавлена классификация проблем по severity:
- `error` — блокирующие ошибки
- `warn` — предупреждения (например, unknown keys)
- Добавлен вывод в двух форматах:
- `json` (по умолчанию)
- `text`
- Поддержан глобальный флаг `--format` для команды.
- Обновлена документация (`README`, EN/RU guide по configuration).
## Поведение команды
- По умолчанию проверяется `easyp.yaml` (можно передать путь через `--config`/`-c`).
- Перед валидацией разворачиваются переменные окружения в конфиге.
- Команда возвращает:
- `exit code 0`, если есть только warnings или проблем нет
- `non-zero`, если есть ошибки валидации
- В выводе ошибки и предупреждения разделяются.
## Примеры
```bash
# Проверка конфига по умолчанию (JSON)
easyp validate-config
# Проверка конкретного файла в текстовом виде
easyp validate-config --config example.easyp.yaml --format text
*`easyp validate-config` - Validate `easyp.yaml` structure and types (JSON or text output)
79
+
* Global flag: `--format, -f` / env `EASYP_FORMAT` (`text` or `json`) for commands that support formatted output
78
80
79
81
## Key Features
80
82
@@ -139,6 +141,18 @@ lint:
139
141
- PACKAGE_DEFINED
140
142
- FIELD_LOWER_SNAKE_CASE
141
143
- MESSAGE_PASCAL_CASE
144
+
145
+
# Configuration validation
146
+
147
+
`easyp validate-config`validates `easyp.yaml` (or a custom path passed via `--config`). It expands env vars, checks required fields and types, warns on unknown keys, and exits with a non-zero status when errors are found.
148
+
149
+
```sh
150
+
# Validate the default easyp.yaml with JSON output (default)
151
+
easyp validate-config
152
+
153
+
# Validate a custom file with text output
154
+
easyp validate-config --config example.easyp.yaml --format text
|`--format`|`-f`|`EASYP_FORMAT`| Формат вывода для команд с поддержкой нескольких форматов (`text`/`json`) | значение по умолчанию зависит от команды |
|`--config`|`-c`|`EASYP_CFG`| Путь до файла конфигурации |`easyp.yaml`|
129
+
|`--format`|`-f`|| Формат вывода (`json` или `text`) |`json`|
130
+
131
+
**Examples:**
132
+
```bash
133
+
# Проверить конфиг по умолчанию с JSON выводом (статус 0 если ошибок нет)
134
+
easyp validate-config
135
+
136
+
# Проверить другой файл и вывести в текстовом формате
137
+
easyp validate-config --config example.easyp.yaml --format text
138
+
```
139
+
120
140
**Package management commands:**
121
141
122
142
#### `easyp mod download`
@@ -161,7 +181,7 @@ EasyP supports environment variables for configuration:
161
181
|`EASYP_CFG`| Path to configuration file |`easyp.yaml`|
162
182
|`EASYP_DEBUG`| Enable debug logging |`false`|
163
183
|`EASYPPATH`| Cache and modules storage directory |`$HOME/.easyp`|
164
-
|`EASYP_FORMAT`|Output format for lint command |`text`|
184
+
|`EASYP_FORMAT`|Формат вывода для поддерживаемых команд (`text`/`json`). Если не указан, каждая команда использует своё значение по умолчанию. | значение по умолчанию зависит от команды|
165
185
|`EASYP_ROOT_GENERATE_PATH`| Root path for generate command |`.`|
166
186
|`EASYP_INIT_DIR`| Directory for init command |`.`|
0 commit comments