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

FIxes #155
pull/162/head
Alexey Golub 6 years ago
parent adbe544c57
commit 1976e3ad08

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

Loading…
Cancel
Save