1
0
mirror of https://github.com/ansible/tower-cli.git synced 2026-02-06 09:47:55 +01:00
Files
tower-cli/tower_cli/cli/transfer/logging_command.py
Alan Rominger fffcbd2fb0 Merge pull request #614 from john-westcott-iv/523-foreground-color
#523 Changed foreground color to default, not black
2018-09-17 10:25:21 -04:00

100 lines
3.1 KiB
Python

from tower_cli.utils import secho
import click
import six
class LoggingCommand:
ok_messages = 0
error_messages = 0
changed_messages = 0
warn_messages = 0
columns = None
no_color = False
def print_intro(self):
self.my_print("")
def get_rows(self):
self.columns = click.get_terminal_size()[0]
def print_header_row(self, asset_type, asset_name):
if self.columns is None:
self.get_rows()
else:
self.my_print('')
# The 4 is from 2 spaces and 2 brackets
stars = '*' * (int(self.columns) - (len(asset_type + asset_name) + 4))
self.my_print(six.text_type("{} [{}] {}").format(
asset_type.replace("_", " ").upper(), asset_name, stars)
)
def print_recap(self):
if self.columns is None:
self.get_rows()
else:
self.my_print('')
# Print the recap message
recap_message = "PLAY RECAP"
stars = '*' * (int(self.columns) - (len(recap_message) + 1))
self.my_print("{} {}".format(recap_message, stars))
spaces_separating_messages = " "
# Print OK count
self.my_print(spaces_separating_messages, nl=False)
ok = "ok={}".format(self.ok_messages)
color = ''
if self.ok_messages > 0:
color = 'green'
self.my_print(ok, fg=color, nl=False)
# Print CHANGED count
self.my_print(spaces_separating_messages, nl=False)
changed = "changed={}".format(self.changed_messages)
color = ''
if self.changed_messages > 0:
color = 'yellow'
self.my_print(changed, fg=color, nl=False)
# Print WARNING count
self.my_print(spaces_separating_messages, nl=False)
warnings = "warnings={}".format(self.warn_messages)
color = ''
if self.warn_messages > 0:
color = 'magenta'
self.my_print(warnings, fg=color, nl=False)
# Print ERROR count
self.my_print(spaces_separating_messages, nl=False)
error = "failed={}".format(self.error_messages)
color = ''
if self.error_messages > 0:
color = 'red'
self.my_print(error, fg=color)
self.my_print("")
def log_warn(self, warn_message):
self.my_print(" [WARNING]: {}".format(warn_message), fg='magenta', bold=True)
self.warn_messages = self.warn_messages + 1
def log_ok(self, ok_message):
self.my_print("{}".format(ok_message), fg='green')
self.ok_messages = self.ok_messages + 1
def log_change(self, change_message):
self.my_print("{}".format(change_message), fg='yellow')
self.changed_messages = self.changed_messages + 1
def log_error(self, error_message):
self.my_print("{}".format(error_message), fg='red', bold=True)
self.error_messages = self.error_messages + 1
def my_print(self, message=None, fg='', bold=False, nl=True):
if self.no_color:
secho(message, fg='', bold=False, nl=nl)
else:
secho(message, fg=fg, bold=bold, nl=nl)