command: Don't show more than two of the same warning
Some of our warnings are produced in response to particular configuration constructs which might appear many times across a Terraform configuration. To avoid the warning output dwarfing all of the other output, we'll use ConsolidateWarnings to limit each distinct warning summary to appear at most twice, and annotate the final one in the sequence with an additional paragraph noting that some number of them have been hidden. This is intended as a compromise to ensure that these warnings are still seen and noted but to help ensure that we won't produce so many of them as to distract from other output that appears alongside them. This applies only to warnings relating to specific configuration ranges; errors will continue to be shown individually, and sourceless warnings (which are rare in Terraform today) will likewise remain ungrouped because they are less likely to be repeating the same statement about different instances of the same problem throughout the configuration.
This commit is contained in:
parent
79b62ae8ca
commit
7081c26e54
|
@ -480,6 +480,9 @@ func (m *Meta) showDiagnostics(vals ...interface{}) {
|
|||
diags = diags.Append(vals...)
|
||||
diags.Sort()
|
||||
|
||||
// Since warning messages are generally competing
|
||||
diags = diags.ConsolidateWarnings()
|
||||
|
||||
for _, diag := range diags {
|
||||
// TODO: Actually measure the terminal width and pass it here.
|
||||
// For now, we don't have easy access to the writer that
|
||||
|
|
Loading…
Reference in New Issue