From da4c2d91d24a9f33e2d2de9668194942453a0c22 Mon Sep 17 00:00:00 2001 From: Jason Axelson Date: Sat, 6 Jun 2020 16:24:04 -1000 Subject: [PATCH] Only use ANSI colors on terminals that support ANSI --- CHANGELOG.md | 1 + lib/exsync/logger/server.ex | 8 ++++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0b0bf2f..557d155 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ Improvements: * Make logging configurable and make logging (optionally) not overwrite the IEx prompt [#32](https://github.com/falood/exsync/pull/32) * Ensure that compilation errors are displayed in the console [#33](https://github.com/falood/exsync/pull/33) * Add a supervision hierarchy [#35](https://github.com/falood/exsync/pull/35) +* Handle terminals that don't support ANSI colors [#38](https://github.com/falood/exsync/pull/38) Bug fixes: * Fix log when there are no configured group leaders [#36](https://github.com/falood/exsync/pull/36) diff --git a/lib/exsync/logger/server.ex b/lib/exsync/logger/server.ex index 920b8db..177caa9 100644 --- a/lib/exsync/logger/server.ex +++ b/lib/exsync/logger/server.ex @@ -62,8 +62,12 @@ defmodule ExSync.Logger.Server do end defp color_message(message, level) do - color = color(level) - [IO.ANSI.format_fragment(color, true), message | IO.ANSI.reset()] + if IO.ANSI.enabled?() do + color = color(level) + [IO.ANSI.format_fragment(color, true), message | IO.ANSI.reset()] + else + message + end end defp color(:debug), do: :cyan