3.4 KiB
Honor the NO_COLOR environment variable
The user pastes the specification of the NO_COLOR environment variable protocol from no-color.org into the chat with GPT-4.
GPT figures out which files need to be edited, and asks permission to make changes. It then disables all the color and pretty-printing functions if NO_COLOR is set, so the tool conforms to the specification.
Chat transcript
$ aider
Using git repo: .git
Use /help to see in-chat commands.
Command-line software which adds ANSI color to its output by default should check for a NO_COLOR environment variable that, when present and not an empty string (regardless of its value), prevents the addition of ANSI color.
To implement this feature, we need to modify the aider/io.py
file. Please make it read-write so I can provide the necessary changes.
aider/io.py
Add these files to the chat? y
Great! Now, I will make the necessary changes to check for the NO_COLOR
environment variable and disable ANSI color when it is present and not an empty string.
aider/io.py
<<<<<<< ORIGINAL
import os
=======
import os
import os.path
>>>>>>> UPDATED
aider/io.py
<<<<<<< ORIGINAL
def __init__(
self,
pretty=True,
yes=False,
input_history_file=None,
chat_history_file=None,
input=None,
output=None,
user_input_color="blue",
tool_output_color=None,
tool_error_color="red",
):
self.user_input_color = user_input_color
self.tool_output_color = tool_output_color
self.tool_error_color = tool_error_color
self.input = input
self.output = output
self.pretty = pretty
self.yes = yes
self.input_history_file = input_history_file
if chat_history_file is not None:
self.chat_history_file = Path(chat_history_file)
else:
self.chat_history_file = None
if pretty:
self.console = Console()
else:
self.console = Console(force_terminal=True, no_color=True)
=======
def __init__(
self,
pretty=True,
yes=False,
input_history_file=None,
chat_history_file=None,
input=None,
output=None,
user_input_color="blue",
tool_output_color=None,
tool_error_color="red",
):
no_color = os.environ.get("NO_COLOR")
if no_color is not None and no_color != "":
pretty = False
self.user_input_color = user_input_color if pretty else None
self.tool_output_color = tool_output_color if pretty else None
self.tool_error_color = tool_error_color if pretty else None
self.input = input
self.output = output
self.pretty = pretty
self.yes = yes
self.input_history_file = input_history_file
if chat_history_file is not None:
self.chat_history_file = Path(chat_history_file)
else:
self.chat_history_file = None
self.console = Console(force_terminal=not pretty, no_color=not pretty)
>>>>>>> UPDATED
These changes will make the software check for the NO_COLOR
environment variable and disable ANSI color when it is present and not an empty string.
Applied edit to aider/io.py
Applied edit to aider/io.py
Commit3218242
aider: Added check for NO_COLOR environment variable to disable ANSI color.