diff --git a/OpenRA.Mods.Common/UtilityCommands/CheckYaml.cs b/OpenRA.Mods.Common/UtilityCommands/CheckYaml.cs index ab65a10513..ab155e5534 100644 --- a/OpenRA.Mods.Common/UtilityCommands/CheckYaml.cs +++ b/OpenRA.Mods.Common/UtilityCommands/CheckYaml.cs @@ -23,6 +23,7 @@ namespace OpenRA.Mods.Common.UtilityCommands string IUtilityCommand.Name => "--check-yaml"; static int errors = 0; + static int warnings = 0; // mimic Windows compiler error format static void EmitError(string e) @@ -31,9 +32,15 @@ namespace OpenRA.Mods.Common.UtilityCommands ++errors; } - static void EmitWarning(string e) + void EmitWarning(string e) { - Console.WriteLine($"OpenRA.Utility(1,1): Warning: {e}"); + if (warningAsError) + EmitError(e); + else + { + Console.WriteLine($"OpenRA.Utility(1,1): Warning: {e}"); + ++warnings; + } } bool IUtilityCommand.ValidateArguments(string[] args) @@ -80,7 +87,7 @@ namespace OpenRA.Mods.Common.UtilityCommands try { var customPass = (ILintPass)modData.ObjectCreator.CreateBasic(customPassType); - customPass.Run(EmitError, warningAsError ? EmitError : EmitWarning, modData); + customPass.Run(EmitError, EmitWarning, modData); } catch (Exception e) { @@ -111,6 +118,9 @@ namespace OpenRA.Mods.Common.UtilityCommands } } + if (warnings > 0) + Console.WriteLine($"Warnings: {warnings}"); + if (errors > 0) { Console.WriteLine($"Errors: {errors}"); @@ -150,7 +160,7 @@ namespace OpenRA.Mods.Common.UtilityCommands try { var customMapPass = (ILintMapPass)modData.ObjectCreator.CreateBasic(customMapPassType); - customMapPass.Run(EmitError, warningAsError ? EmitError : EmitWarning, modData, map); + customMapPass.Run(EmitError, EmitWarning, modData, map); } catch (Exception e) { @@ -166,7 +176,7 @@ namespace OpenRA.Mods.Common.UtilityCommands try { var customRulesPass = (ILintRulesPass)modData.ObjectCreator.CreateBasic(customRulesPassType); - customRulesPass.Run(EmitError, warningAsError ? EmitError : EmitWarning, modData, rules); + customRulesPass.Run(EmitError, EmitWarning, modData, rules); } catch (Exception e) { @@ -182,7 +192,7 @@ namespace OpenRA.Mods.Common.UtilityCommands try { var customRulesPass = (ILintSequencesPass)modData.ObjectCreator.CreateBasic(customSequencesPassType); - customRulesPass.Run(EmitError, warningAsError ? EmitError : EmitWarning, modData, rules, sequences); + customRulesPass.Run(EmitError, EmitWarning, modData, rules, sequences); } catch (Exception e) {