[CLI] Don't write progress if output is redirected

FIxes #155
This commit is contained in:
Alexey Golub 2019-03-10 14:40:08 +02:00
parent adbe544c57
commit 1976e3ad08

View file

@ -8,20 +8,32 @@ namespace DiscordChatExporter.Cli.Internal
private readonly int _posY;
public InlineProgress()
{
// If output is not redirected - save initial cursor position
if (!Console.IsOutputRedirected)
{
_posX = Console.CursorLeft;
_posY = Console.CursorTop;
}
}
public void Report(double progress)
{
// If output is not redirected - reset cursor position and write progress
if (!Console.IsOutputRedirected)
{
Console.SetCursorPosition(_posX, _posY);
Console.WriteLine($"{progress:P1}");
}
}
public void Dispose()
{
// If output is not redirected - reset cursor position
if (!Console.IsOutputRedirected)
Console.SetCursorPosition(_posX, _posY);
// Inform about completion
Console.WriteLine("Completed ✓");
}
}