add Crystal NO_COLOR

This commit is contained in:
Alexander Popov 2022-07-26 18:48:20 +03:00
parent 7c62d55a65
commit c2b7c85f00
Signed by: iiiypuk
GPG Key ID: D8C9B59A9F04A70C
3 changed files with 51 additions and 0 deletions

View File

@ -0,0 +1,51 @@
---
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)

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB