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