// Copyright 2013 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

import 'dart:io';

bool _supportsAnsi = stdout.supportsAnsiEscapes;
String _green = _supportsAnsi ? '\u001b[1;32m' : '';
String _red = _supportsAnsi ? '\u001b[31m' : '';
String _gray = _supportsAnsi ? '\u001b[90m' : '';
String _reset = _supportsAnsi? '\u001B[0m' : '';

Future<void> step(String msg, Future<void> Function() fn) async {
  stdout.writeln('-> $_green$msg$_reset');
  try {
    await fn();
  } finally {
    stdout.writeln('<- ${_gray}Done$_reset');
  }
}

void log(String msg) {
  stdout.writeln('$_gray$msg$_reset');
}

void panic(List<String> messages) {
  for (final String message in messages) {
    stderr.writeln('$_red$message$_reset');
  }
  throw 'panic';
}
