Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mekras/ptgrep
Pass through GREP
https://github.com/mekras/ptgrep
ci console grep
Last synced: 26 days ago
JSON representation
Pass through GREP
- Host: GitHub
- URL: https://github.com/mekras/ptgrep
- Owner: mekras
- License: mit
- Created: 2019-06-15T20:51:10.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2023-12-01T13:34:48.000Z (11 months ago)
- Last Synced: 2023-12-01T14:36:26.123Z (11 months ago)
- Topics: ci, console, grep
- Language: Rust
- Size: 32.2 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# PTGREP
[![Состояние сборки](https://travis-ci.org/mekras/ptgrep.svg?branch=master)](https://travis-ci.org/mekras/ptgrep)
Запускает произвольные консольные команды, ищет в их выводе значения по указанным шаблонам и
завершается с ошибкой, если эти значения не укладываются в заданные границы.PTGREP появился чтобы при использовании GitLab иметь возможность задавать требования к качеству
кода. Например, чтобы сборка проваливалась если покрытие кода тестами ниже определённого порога или
в оформлении найдено слишком много ошибок.## Использование
В общем случае вызов ptgrep выглядит так:
ptgrep --pattern=<шаблон> <действия> -- <команда с аргументами>
Пример: *провалить сборку если покрытие кода тестами PHPUnit меньше 80%*
ptgrep --pattern='\n\s+Lines:\s*(?P[\d\.]+)%' --lower=coverage=80 -- vendor/bin/phpunit --coverage-text --colors=never
Пример: *провалить сборку если PHP_CodeSniffer нашёл больше 10 ошибок **или** больше 20 предупреждений*ptgrep --pattern='OF (?P\d+) ERRORS AND (?P\d+)' --higher=errors=10 --higher=warnings=20 -- vendor/bin/phpcs --report-summary --no-colors
Пример: *записать количество ошибок и предупреждений PHP_CodeSniffer в файл*
ptgrep --pattern='OF (?P\d+) ERRORS AND (?P\d+)' --write-env=checkstyle.env -- vendor/bin/phpcs --report-summary --no-colors
### --pattern
Ключ `--pattern` позволяет указать регулярное выражение, которое *ptgrep* будет искать в выводе
вызываемой команды.- [Синтаксис регулярных выражений](https://docs.rs/regex/latest/regex/#syntax)
В выражении надо **обязательно** указать хотя бы одну
[именованную группу захвата](https://docs.rs/regex/latest/regex/#example-replacement-with-named-capture-groups).
Такие группы задаются в формате `(?P<имя_группы>выражение)`.
Имена групп затем можно использовать в других ключах, таких как `--lower` и `--higher`.### --lower, --higher
Ключи `--lower` и `--higher` задают соответственно нижний и верхний порог некоторого значения.
Формат значений ключей: `имя_параметра=число`. Имя параметра — это имя группы захвата из ключа
`--pattern`. Примеры:- `--lower=foo=10`
- `--higher=foo=12.34`
- `--lower=foo=0 --lower=bar=0.5 --higher=baz=1000`### --write-env
Записывает значения, соответствующие шаблону `--pattern`, в указаннный файл в формате `.env`.
Например командаptgrep --pattern='OF (?P\d+) ERRORS AND (?P\d+)' --write-env=checkstyle.env -- vendor/bin/phpcs --report-summary --no-colors
запишет в файл `checkstyle.env` примерно следующее:
ERRORS=668
WARNINGS=32
### КомандаВызываемая команда должна указываться после всех ключей и отделяться от них двумя дефисами — `--`:
## Примеры использования
- [PHP_CodeSniffer](docs/ru/phpcs.md)