def output(self, event):
if event.name in self.ignored_events:
return
character_style = self.get_character_style(event)
character = self.get_character(event)
text_style = self.get_text_style(event)
if event.name == 'RunningTask':
text = f'Running task: {Style.NORMAL}{event.args["task"].name}'
elif event.name == 'SkippingTask':
text = f'Skipping task: {Style.NORMAL}{event.args["name"]}'
elif event.name == 'RunningCommand':
text = f'Executing: {Style.NORMAL}{event.args["command"]}'
elif event.name == 'CommandOutput':
text = event.args['output']
if event.args['pipe'] == 'stderr':
text_style += Fore.RED
elif event.name == 'CommandFailed':
text = f'Command failed with exit code {event.args["code"]}'
if event.args['description']:
text += f'{Style.NORMAL}\n{self.indent(event.args["description"], 3)}'
elif event.name == 'InvalidMofile':
text = f'Invalid task file: {Style.NORMAL}{event.args["filename"]}'
elif event.name == 'UndefinedVariable':
text = f'Undefined variable: {Style.NORMAL}{event.args["variable"]}'
elif event.name == 'TaskNotFound':
text = f'No such task: {Style.NORMAL}{event.args["name"]}'
if event.args['similarities']:
similarities_str = ', '.join(event.args['similarities'])
text += f' Did you mean? {similarities_str}'
elif event.name == 'HelpOutput':
print()
for line in event.args['output'].splitlines():
print('', line)
return
elif event.name == 'Help':
print('Available tasks:')
print()
for name, task in event.args['tasks'].items():
print(name, '-', task.description)
return
else:
character = '?'
character_style = Fore.YELLOW
text = f'Unknown event: {Style.NORMAL}{event}'
text_style = Fore.YELLOW
character_style += Style.BRIGHT
print(
f' {character_style}{character}{Style.RESET_ALL}' +
f' {text_style}{text}{Style.RESET_ALL}'
)
评论列表
文章目录