Skip to content

Commit e5ae957

Browse files
Merge pull request #73 from srebrek/fix/clear-progress-bar
Fix: Clear leftover characters in console progress bar (#72)
2 parents 8d61e50 + ee4efc4 commit e5ae957

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

src/MaIN.Core/Hub/Contexts/ModelContext.cs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -267,8 +267,18 @@ private static void ShowProgress(long totalBytesRead, long? totalBytes, Stopwatc
267267
var progressPercentage = (double)totalBytesRead / totalBytes.Value * 100;
268268
var eta = speed > 0 ? TimeSpan.FromSeconds((totalBytes.Value - totalBytesRead) / speed) : TimeSpan.Zero;
269269

270+
var (leftBefore, topBefore) = Console.GetCursorPosition();
270271
Console.Write($"\rProgress: {progressPercentage:F1}% ({FormatBytes(totalBytesRead)}/{FormatBytes(totalBytes.Value)}) " +
271272
$"Speed: {FormatBytes((long)speed)}/s ETA: {eta:hh\\:mm\\:ss}");
273+
274+
var (leftAfter, topAfter) = Console.GetCursorPosition();
275+
int lengthDifference = leftBefore - leftAfter + (topBefore - topAfter) * Console.WindowWidth;
276+
while (lengthDifference > 0)
277+
{
278+
Console.Write(' ');
279+
lengthDifference--;
280+
}
281+
Console.SetCursorPosition(leftAfter, topAfter);
272282
}
273283
else
274284
{

0 commit comments

Comments
 (0)