Blog/content/posts/2022/crystal/nocolor-crystal/index.md

52 lines
2.0 KiB
Markdown
Raw Normal View History

2022-07-26 18:48:20 +03:00
---
2022-11-19 03:36:06 +03:00
title: "🖥️ NO_COLOR в Crystal"
2022-07-26 18:48:20 +03:00
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)