From 12615dab78cb6fc7d8c74b7b65a4136b0feeb33f Mon Sep 17 00:00:00 2001 From: Ramiro Morales Date: Mon, 2 Dec 2013 23:11:59 -0300 Subject: [PATCH] Fixed #13476 -- Added support for color in console output under Windows. Detect and use the services of the ANSICON third-party tool if it's available. --- django/core/management/color.py | 6 ++++-- docs/ref/django-admin.txt | 13 +++++++++++++ docs/releases/1.7.txt | 3 +++ 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/django/core/management/color.py b/django/core/management/color.py index 20e31fff93..3890a4546f 100644 --- a/django/core/management/color.py +++ b/django/core/management/color.py @@ -13,10 +13,12 @@ def supports_color(): Returns True if the running system's terminal supports color, and False otherwise. """ - unsupported_platform = (sys.platform in ('win32', 'Pocket PC')) + plat = sys.platform + supported_platform = plat != 'Pocket PC' and (plat != 'win32' or + 'ANSICON' in os.environ) # isatty is not always implemented, #6223. is_a_tty = hasattr(sys.stdout, 'isatty') and sys.stdout.isatty() - if unsupported_platform or not is_a_tty: + if not supported_platform or not is_a_tty: return False return True diff --git a/docs/ref/django-admin.txt b/docs/ref/django-admin.txt index 69555dcb5c..cac7a5bc22 100644 --- a/docs/ref/django-admin.txt +++ b/docs/ref/django-admin.txt @@ -1552,6 +1552,11 @@ color-coded output if your terminal supports ANSI-colored output. It won't use the color codes if you're piping the command's output to another program. +Under Windows, the native console doesn't support ANSI escape sequences so by +default there is no color output. But you can install the `ANSICON`_ +third-party tool, the Django commands will detect its presence and will make +use of its services to color output just like on Unix-based platforms. + The colors used for syntax highlighting can be customized. Django ships with three color palettes: @@ -1636,6 +1641,14 @@ would specify the use of all the colors in the light color palette, *except* for the colors for errors and notices which would be overridden as specified. +.. versionadded:: 1.7 + +Support for color-coded output from ``django-admin.py`` / ``manage.py`` +utilities on Windows by relying on the ANSICON application was added in Django +1.7. + +.. _ANSICON: http://adoxa.hostmyway.net/ansicon/ + Bash completion --------------- diff --git a/docs/releases/1.7.txt b/docs/releases/1.7.txt index 1041edb37b..0d37a8d99a 100644 --- a/docs/releases/1.7.txt +++ b/docs/releases/1.7.txt @@ -415,6 +415,9 @@ Management Commands * All HTTP requests are logged to the console, including requests for static files or ``favicon.ico`` that used to be filtered out. +* Management commands can now produce syntax colored output under Windows if + the ANSICON third-party tool is installed and active. + Models ^^^^^^