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

52 lines
2.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
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)