I was looking around in our deployment process and found out we deploy a file
.iex.exs. Upon inspection this file only does
Application.put_env(:elixir, :ansi_enabled, true). So I understand that this file is what enables colour when we use the remote_console. Now I don’t really like deploying this file just for that reason, so I started digging around how this works.
I found out that when starting a release, elixir decides to pass
-elixir ansi_enabled true when stdin and stdout are both opened in a terminal. But because we start our release using systemd, the flag is not passed (at least I assume that’s the reason).
Although when running the remote_console I can see the flag is being passed to the that elixir process, but (I guess) because the release has
ansi_enabled: false configured, there’s no colour.
So my question is in two-fold:
- Can the remote_console have colour based on it’s own ansi_enabled flag?
- Is it safe to just configure
ansi_enabled: truein the release config?