[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

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