Yamlfmt: Форматирование YAML файлов
Введение
Yamlfmt — это утилита командной строки для форматирования YAML-файлов. Она упрощает соблюдение единых правил оформления, делая файлы более читаемыми и поддерживаемыми. В данной статье рассмотрим основные способы использования yamlfmt, различные режимы работы и доступные флаги конфигурации.
Основное использование
Наиболее простое использование yamlfmt заключается в применении стандартной конфигурации и указании пути к файлу или директории для форматирования.
Форматирование одного файла
Для форматирования одного файла используйте команду:
yamlfmt x.yamlФорматирование директории
Для рекурсивного поиска и форматирования всех файлов с расширением .yml или .yaml в указанной директории:
yamlfmt .Использование Doublestar
Для более динамичного поиска файлов можно использовать Doublestar. Например:
yamlfmt -dstar "**/*.yaml"Три режима работы
Yamlfmt поддерживает три режима работы: форматирование, проверка (Lint) и тестовый запуск (Dry Run).
Форматирование
Это основной режим работы по умолчанию. Yamlfmt находит все файлы, соответствующие указанным шаблонам, и форматирует их, перезаписывая исходные файлы.
Форматирование из stdin
Этот режим считывает данные из стандартного ввода и выводит отформатированные данные в стандартный вывод. Для его использования передайте - или /dev/stdin, либо используйте флаг -in:
cat x.yaml | yamlfmt -
cat x.yaml | yamlfmt /dev/stdin
cat x.yaml | yamlfmt -inТестовый запуск (Dry Run)
Этот режим активируется с помощью флага -dry. Он выводит результат форматирования в консоль без изменения файлов. Полезен для предварительного просмотра изменений:
yamlfmt -dry "путь/к/файлам/*.yaml"Проверка (Lint)
Этот режим активируется флагом -lint. Yamlfmt проверяет файлы на наличие различий в формате и завершает работу с кодом 1, если такие различия найдены.
yamlfmt -lint .Флаги командной строки
Операционные флаги
| Имя | Флаг | Описание |
|---|---|---|
| Помощь | -help | Печатает информацию о команде. |
| Версия | -version | Печатает версию yamlfmt. |
| Конфигурация | -print_conf | Печатает используемую конфигурацию. |
| Тестовый запуск | -dry | Выполняет тестовый запуск. |
| Проверка | -lint | Выполняет проверку формата. |
| Тихий режим | -quiet | Использует тихий режим (влияет на Dry Run и Lint). |
| Ввод | -in | Считывает данные из stdin и выводит в stdout. |
Конфигурационные флаги
| Имя | Флаг | Тип | Описание |
|---|---|---|---|
| Файл конфигурации | -conf | string | Путь к файлу конфигурации. |
| Глобальная конфигурация | -global_conf | bool | Использовать конфигурацию из системного каталога. |
| Отключить глобальную конфигурацию | -no_global_conf | bool | Отключить использование конфигурации из системного каталога. |
| Doublestar | -dstar | bool | Использовать Doublestar для включения и исключения путей. |
| Исключить | -exclude | []string | Паттерны для исключения путей. |
| Gitignore | -gitignore_excludes | bool | Использовать gitignore для исключения путей. |
| Путь к gitignore | -gitignore_path | string | Путь к файлу gitignore (по умолчанию .gitignore). |
| Расширения | -extensions | []string | Расширения файлов для поиска. |
| Конфигурация форматтера | -formatter | []string | Параметры для настройки форматтера. |
| Отладка | -debug | []string | Включить отладочные сообщения. |
| Формат вывода | -output_format | string | Формат вывода (по умолчанию “default”). |
Файл конфигурации
Yamlfmt автоматически ищет файлы конфигурации с определенными именами (.yamlfmt, yamlfmt.yml, и т.д.). Вы также можете указать путь к конфигурационному файлу с помощью флага -conf.
Настройка форматтера
Пример конфигурации с использованием базового форматтера:
formatter:
type: basic
indent: 2
include_document_start: trueПример использования в pre-commit
Для использования yamlfmt в качестве хука pre-commit добавьте следующий блок в ваш .pre-commit-config.yaml:
- repo: https://github.com/google/yamlfmt
rev: v0.10.0
hooks:
- id: yamlfmtЗаключение
Yamlfmt — это мощный инструмент для обеспечения единообразного форматирования YAML-файлов. Он поддерживает различные режимы работы, гибкие настройки и легко интегрируется в существующие процессы CI/CD.
Для получения дополнительной информации и установки, посетите страницу проекта Yamlfmt на GitHub.