@@ -30,7 +30,8 @@ private[mill] case class Execution(
30
30
systemExit : ( /* reason */ String , /* exitCode */ Int ) => Nothing ,
31
31
exclusiveSystemStreams : SystemStreams ,
32
32
getEvaluator : () => EvaluatorApi ,
33
- offline : Boolean
33
+ offline : Boolean ,
34
+ enableTicker : Boolean
34
35
) extends GroupExecution with AutoCloseable {
35
36
36
37
// this (shorter) constructor is used from [[MillBuildBootstrap]] via reflection
@@ -50,7 +51,8 @@ private[mill] case class Execution(
50
51
systemExit : ( /* reason */ String , /* exitCode */ Int ) => Nothing ,
51
52
exclusiveSystemStreams : SystemStreams ,
52
53
getEvaluator : () => EvaluatorApi ,
53
- offline : Boolean
54
+ offline : Boolean ,
55
+ enableTicker : Boolean
54
56
) = this (
55
57
baseLogger,
56
58
new JsonArrayLogger .Profile (os.Path (outPath) / millProfile),
@@ -68,7 +70,8 @@ private[mill] case class Execution(
68
70
systemExit,
69
71
exclusiveSystemStreams,
70
72
getEvaluator,
71
- offline
73
+ offline,
74
+ enableTicker
72
75
)
73
76
74
77
def withBaseLogger (newBaseLogger : Logger ) = this .copy(baseLogger = newBaseLogger)
@@ -131,6 +134,7 @@ private[mill] case class Execution(
131
134
baseLogger.withChromeProfile(" execution" ) {
132
135
val uncached = new ConcurrentHashMap [Task [? ], Unit ]()
133
136
val changedValueHash = new ConcurrentHashMap [Task [? ], Unit ]()
137
+ val prefixes = new ConcurrentHashMap [Task [? ], Seq [String ]]()
134
138
135
139
val futures = mutable.Map .empty[Task [? ], Future [Option [GroupExecution .Results ]]]
136
140
@@ -187,6 +191,7 @@ private[mill] case class Execution(
187
191
noPrefix = exclusive
188
192
)
189
193
194
+ if (enableTicker) prefixes.put(terminal, contextLogger.logKey)
190
195
contextLogger.withPromptLine {
191
196
logger.prompt.setPromptHeaderPrefix(formatHeaderPrefix(countMsg, keySuffix))
192
197
@@ -316,10 +321,12 @@ private[mill] case class Execution(
316
321
317
322
val results : Map [Task [? ], ExecResult [(Val , Int )]] = results0.toMap
318
323
324
+ import scala .collection .JavaConverters ._
319
325
Execution .Results (
320
326
goals.toIndexedSeq.map(results(_).map(_._1)),
321
327
finishedOptsMap.values.flatMap(_.toSeq.flatMap(_.newEvaluated)).toSeq,
322
- results.map { case (k, v) => (k, v.map(_._1)) }
328
+ results.map { case (k, v) => (k, v.map(_._1)) },
329
+ prefixes.asScala.toMap
323
330
)
324
331
}
325
332
}
@@ -357,6 +364,7 @@ private[mill] object Execution {
357
364
private [Execution ] case class Results (
358
365
results : Seq [ExecResult [Val ]],
359
366
uncached : Seq [Task [? ]],
360
- transitiveResults : Map [Task [? ], ExecResult [Val ]]
367
+ transitiveResults : Map [Task [? ], ExecResult [Val ]],
368
+ override val transitivePrefixes : Map [Task [? ], Seq [String ]]
361
369
) extends mill.api.ExecutionResults
362
370
}
0 commit comments