File tree Expand file tree Collapse file tree 1 file changed +11
-1
lines changed Expand file tree Collapse file tree 1 file changed +11
-1
lines changed Original file line number Diff line number Diff line change @@ -25,6 +25,12 @@ import class TSCUtility.PercentProgressAnimation
25
25
@MainActor
26
26
private var progressBar : PercentProgressAnimation ? = nil
27
27
28
+ /// The last progress that was reported on the progress bar. This ensures that when the progress indicator uses the
29
+ /// `MultiLinePercentProgressAnimation` (eg. because stderr is redirected to a file) we don't emit status updates
30
+ /// without making any real progress.
31
+ @MainActor
32
+ private var lastProgress : ( Int , String ) ? = nil
33
+
28
34
/// A component of the diagnostic bundle that's collected in independent stages.
29
35
fileprivate enum BundleComponent : String , CaseIterable , ExpressibleByArgument {
30
36
case crashReports = " crash-reports "
@@ -326,7 +332,11 @@ public struct DiagnoseCommand: AsyncParsableCommand {
326
332
327
333
@MainActor
328
334
private func reportProgress( _ state: DiagnoseProgressState , message: String ) {
329
- progressBar? . update ( step: Int ( state. progress * 100 ) , total: 100 , text: message)
335
+ let progress : ( step: Int , message: String ) = ( Int ( state. progress * 100 ) , message)
336
+ if lastProgress == nil || progress != lastProgress! {
337
+ progressBar? . update ( step: Int ( state. progress * 100 ) , total: 100 , text: message)
338
+ lastProgress = progress
339
+ }
330
340
}
331
341
332
342
@MainActor
You can’t perform that action at this time.
0 commit comments