52 lines
2.0 KiB
Markdown
52 lines
2.0 KiB
Markdown
|
---
|
|||
|
title: "NO_COLOR в Crystal"
|
|||
|
date: 2022-07-26T18:23:31+03:00
|
|||
|
draft: false
|
|||
|
tags: [crystal]
|
|||
|
---
|
|||
|
|
|||
|
В Crystal 1.5.0 появилась поддержка `NO_COLOR`.
|
|||
|
Спасибо [@didactic-drunk](https://github.com/didactic-drunk).
|
|||
|
[Пулл-реквест #11984](https://github.com/crystal-lang/crystal/pull/11984).
|
|||
|
|
|||
|
Чувак реализовал в библиотеке `Colorize` поддержку `NO_COLOR` без лишних телодвижений для разработчика.
|
|||
|
|
|||
|
`NO_COLOR` это вроде движения, стандарт который урегулирует тенденцию добавления
|
|||
|
в утилиты цветного выхлопа в консоль.
|
|||
|
|
|||
|
Сайт проекта — [https://no-color.org/](https://no-color.org/).
|
|||
|
|
|||
|
## Кратко о том, как это работает
|
|||
|
|
|||
|
ПО, которое по умолчанию добавляет цвет ANSI к своим выводам,
|
|||
|
должно проверять наличие переменной среды `NO_COLOR`.
|
|||
|
Если она присутствует, а не является пустой строкой (независимо от ее значения),
|
|||
|
предотвращает добавление цвета ANSI.
|
|||
|
|
|||
|
Приняв этот стандарт, пользователи, предпочитающие вывод обычного,
|
|||
|
неокрашенного текста, могут установить одну переменную среды в своей оболочке,
|
|||
|
чтобы она автоматически влияла на все поддерживаемое ПО.
|
|||
|
|
|||
|
> Яндекс перевод, ага...
|
|||
|
|
|||
|
## Пример
|
|||
|
По умолчанию вывод команды ниже будет пуст.
|
|||
|
|
|||
|
```sh
|
|||
|
printenv | grep NO_COLOR
|
|||
|
```
|
|||
|
|
|||
|
Значение `NO_COLOR` может быть любым, но не пустым.
|
|||
|
|
|||
|
```sh
|
|||
|
export NO_COLOR=1
|
|||
|
printenv | grep NO_COLOR
|
|||
|
NO_COLOR=1
|
|||
|
```
|
|||
|
|
|||
|
## Скриншоты
|
|||
|
|
|||
|
![default](pmng_color.png)
|
|||
|
|
|||
|
![with_no_color](pmng_nocolor.png)
|