old_contents: # (c) 2012, Michael DeHaan <michael.dehaan@gmail.com>
  #
  # This file is part of Ansible
  #
  # Ansible is free software: you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
  # the Free Software Foundation, either version 3 of the License, or
  # (at your option) any later version.
  #
  # Ansible is distributed in the hope that it will be useful,
  # but WITHOUT ANY WARRANTY; without even the implied warranty of
  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  # GNU General Public License for more details.
  #
  # You should have received a copy of the GNU General Public License
  # along with Ansible.  If not, see <http://www.gnu.org/licenses/>.
  
  import os
  import sys
  
  ANSIBLE_COLOR=True
  if os.getenv("ANSIBLE_NOCOLOR") is not None:
      ANSIBLE_COLOR=False
  elif not sys.stdout.isatty():
      ANSIBLE_COLOR=False
  else:
      try:
          import curses
          curses.setupterm()
          if curses.tigetnum('colors') < 0:
              ANSIBLE_COLOR=False
      except ImportError:
          # curses library was not found
          pass
      except curses.error:
          # curses returns an error (e.g. could not find terminal)
          ANSIBLE_COLOR=False
  
  if os.getenv("ANSIBLE_FORCE_COLOR") is not None:
          ANSIBLE_COLOR=True
  
  # --- begin "pretty"
  #
  # pretty - A miniature library that provides a Python print and stdout
  # wrapper that makes colored terminal text easier to use (eg. without
  # having to mess around with ANSI escape sequences). This code is public
  # domain - there is no license except that you must leave this header.
  #
  # Copyright (C) 2008 Brian Nez <thedude at bri1 dot com>
  #
  # http://nezzen.net/2008/06/23/colored-text-in-python-using-ansi-escape-sequences/
  
  codeCodes = {
      'black':     '0;30', 'bright gray':    '0;37',
      'blue':      '0;34', 'white':          '1;37',
      'green':     '0;32', 'bright blue':    '1;34',
      'cyan':      '0;36', 'bright green':   '1;32',
      'red':       '0;31', 'bright cyan':    '1;36',
      'purple':    '0;35', 'bright red':     '1;31',
      'yellow':    '0;33', 'bright purple':  '1;35',
      'dark gray': '1;30', 'bright yellow':  '1;33',
      'normal':    '0'
  }
  
  def stringc(text, color):
      """String in color."""
  
      if ANSIBLE_COLOR:
          return "\033["+codeCodes[color]+"m"+text+"\033[0m"
      else:
          return text
  
  # --- end "pretty"
  
  
new_contents: # (c) 2012, Michael DeHaan <michael.dehaan@gmail.com>
  #
  # This file is part of Ansible
  #
  # Ansible is free software: you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
  # the Free Software Foundation, either version 3 of the License, or
  # (at your option) any later version.
  #
  # Ansible is distributed in the hope that it will be useful,
  # but WITHOUT ANY WARRANTY; without even the implied warranty of
  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  # GNU General Public License for more details.
  #
  # You should have received a copy of the GNU General Public License
  # along with Ansible.  If not, see <http://www.gnu.org/licenses/>.
  
  import os
  import sys
  
  ANSIBLE_COLOR=True
  if os.getenv("ANSIBLE_NOCOLOR") is not None:
      ANSIBLE_COLOR=False
  elif not hasattr(sys.stdout, 'isatty') or not sys.stdout.isatty():
      ANSIBLE_COLOR=False
  else:
      try:
          import curses
          curses.setupterm()
          if curses.tigetnum('colors') < 0:
              ANSIBLE_COLOR=False
      except ImportError:
          # curses library was not found
          pass
      except curses.error:
          # curses returns an error (e.g. could not find terminal)
          ANSIBLE_COLOR=False
  
  if os.getenv("ANSIBLE_FORCE_COLOR") is not None:
          ANSIBLE_COLOR=True
  
  # --- begin "pretty"
  #
  # pretty - A miniature library that provides a Python print and stdout
  # wrapper that makes colored terminal text easier to use (eg. without
  # having to mess around with ANSI escape sequences). This code is public
  # domain - there is no license except that you must leave this header.
  #
  # Copyright (C) 2008 Brian Nez <thedude at bri1 dot com>
  #
  # http://nezzen.net/2008/06/23/colored-text-in-python-using-ansi-escape-sequences/
  
  codeCodes = {
      'black':     '0;30', 'bright gray':    '0;37',
      'blue':      '0;34', 'white':          '1;37',
      'green':     '0;32', 'bright blue':    '1;34',
      'cyan':      '0;36', 'bright green':   '1;32',
      'red':       '0;31', 'bright cyan':    '1;36',
      'purple':    '0;35', 'bright red':     '1;31',
      'yellow':    '0;33', 'bright purple':  '1;35',
      'dark gray': '1;30', 'bright yellow':  '1;33',
      'normal':    '0'
  }
  
  def stringc(text, color):
      """String in color."""
  
      if ANSIBLE_COLOR:
          return "\033["+codeCodes[color]+"m"+text+"\033[0m"
      else:
          return text
  
  # --- end "pretty"
  
  
subject: Check for existence of isatty on stdout before calling it