2021-06-27 21:25:29 +00:00
|
|
|
/***
|
|
|
|
Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.
|
|
|
|
|
|
|
|
File: ConsoleMessage.cpp
|
|
|
|
Date: 2021-6-12
|
|
|
|
Author: Reece
|
|
|
|
***/
|
2021-09-30 14:57:41 +00:00
|
|
|
#include <Source/RuntimeInternal.hpp>
|
2021-06-27 21:25:29 +00:00
|
|
|
#include "ConsoleMessage.hpp"
|
|
|
|
|
|
|
|
namespace Aurora::Console
|
|
|
|
{
|
2022-01-19 17:08:13 +00:00
|
|
|
static AuArray<std::string, static_cast<size_t>(EAnsiColor::eCount)> kAnsiCheats
|
2021-09-06 10:58:08 +00:00
|
|
|
{
|
2021-06-27 21:25:29 +00:00
|
|
|
"\033[0;31m",
|
|
|
|
"\033[1;31m",
|
|
|
|
"\033[0;32m",
|
|
|
|
"\033[1;32m",
|
|
|
|
"\033[0;33m",
|
|
|
|
"\033[1;33m"
|
|
|
|
"\033[0;34m",
|
|
|
|
"\033[1;34m",
|
|
|
|
"\033[0;35m",
|
|
|
|
"\033[1;35m",
|
|
|
|
"\033[0;36m",
|
|
|
|
"\033[1;36m",
|
|
|
|
"\033[0m",
|
|
|
|
"\033[0m"
|
|
|
|
};
|
|
|
|
|
|
|
|
AuString ConsoleMessage::StringifyTime(bool simple) const
|
|
|
|
{
|
2022-01-19 15:25:47 +00:00
|
|
|
std::tm localized;
|
2021-06-27 21:25:29 +00:00
|
|
|
|
2022-01-19 15:25:47 +00:00
|
|
|
Aurora::Time::ToCivilTime(time, false).CopyTo(localized);
|
2021-06-27 21:25:29 +00:00
|
|
|
|
|
|
|
if (simple)
|
|
|
|
{
|
|
|
|
return fmt::format("{:%H:%M:%S}", localized);
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
return fmt::format("{:%Y-%m-%d %H:%M:%S}", localized);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
AuString ConsoleMessage::GetWrappedTag() const
|
|
|
|
{
|
|
|
|
return "[" + prefix + "]";
|
|
|
|
}
|
|
|
|
|
|
|
|
AuString ConsoleMessage::ToConsole() const
|
|
|
|
{
|
2021-10-03 12:44:23 +00:00
|
|
|
return fmt::format("{}[{}] {:<7} | {}{}", kAnsiCheats[static_cast<size_t>(color)], StringifyTime(), GetWrappedTag(), line, kAnsiCheats[static_cast<size_t>(EAnsiColor::eReset)]);
|
2021-06-27 21:25:29 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
AuString ConsoleMessage::ToSimplified() const
|
|
|
|
{
|
|
|
|
return fmt::format("{:<9} {:<7} | {}", StringifyTime(true), GetWrappedTag(), line);
|
|
|
|
}
|
|
|
|
}
|