From 1c3a1199b0923f34566ffa03db87a5e20cbe8aef Mon Sep 17 00:00:00 2001 From: jerryjhird Date: Tue, 24 Feb 2026 13:38:42 +0000 Subject: [PATCH] implement NO_COLOR standard https://no-color.org/ --- lib/core/common.py | 2 +- lib/core/log.py | 3 +++ sqlmap.py | 5 +++++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/lib/core/common.py b/lib/core/common.py index 3ca74653f1..1bb0bd3df6 100644 --- a/lib/core/common.py +++ b/lib/core/common.py @@ -1400,7 +1400,7 @@ def banner(): if not any(_ in sys.argv for _ in ("--version", "--api")) and not conf.get("disableBanner"): result = BANNER - if not IS_TTY or any(_ in sys.argv for _ in ("--disable-coloring", "--disable-colouring")): + if not IS_TTY or conf.get("disableColoring") or any(_ in sys.argv for _ in ("--disable-coloring", "--disable-colouring")): result = clearColors(result) elif IS_WIN: coloramainit() diff --git a/lib/core/log.py b/lib/core/log.py index 72e2028d19..fc52ec11c1 100644 --- a/lib/core/log.py +++ b/lib/core/log.py @@ -23,6 +23,9 @@ class _ColorizingStreamHandler(ColorizingStreamHandler): def colorize(self, message, levelno, force=False): + from lib.core.data import conf # import inside function to avoid ImportError + if conf.get("disableColoring"): + return message if levelno in self.level_map and (self.is_tty or force): bg, fg, bold = self.level_map[levelno] params = [] diff --git a/sqlmap.py b/sqlmap.py index 5e93ef2c83..02367e6abd 100755 --- a/sqlmap.py +++ b/sqlmap.py @@ -148,6 +148,11 @@ def main(): resolveCrossReferences() checkEnvironment() setPaths(modulePath()) + + # Check for NO_COLOR environment variable + if os.environ.get("NO_COLOR") not in (None, ""): + conf.disableColoring = True + banner() # Store original command line options for possible later restoration