v4 first test, will fail due to new validation step

This commit is contained in:
LotP1 2024-12-26 22:54:22 +01:00
parent a317184594
commit bad1f72918
3 changed files with 44 additions and 15 deletions

View File

@ -27,28 +27,57 @@ namespace Ryujinx.BuildValidationTasks
json = JsonSerializer.Deserialize<LocalesJson>(data); json = JsonSerializer.Deserialize<LocalesJson>(data);
} }
catch (Exception e) catch (JsonException e)
{ {
//Log.LogError($"Json Validation failed! {e.Message}"); throw new JsonException(e.Message); //shorter and easier stacktrace
return false;
} }
bool isGitRunner = path.Contains("runner");
if (isGitRunner)
Console.WriteLine("Is Git Runner!");
bool encounteredLanguageIssue = false;
for (int i = 0; i < json.Locales.Count; i++) for (int i = 0; i < json.Locales.Count; i++)
{ {
LocalesEntry locale = json.Locales[i]; LocalesEntry locale = json.Locales[i];
foreach (string langCode in json.Languages.Where(it => !locale.Translations.ContainsKey(it))) foreach (string langCode in json.Languages.Where(lang => !locale.Translations.ContainsKey(lang)))
{ {
locale.Translations.Add(langCode, string.Empty); encounteredLanguageIssue = true;
//Log.LogMessage(MessageImportance.High, $"Added '{langCode}' to Locale '{locale.ID}'");
if (!isGitRunner)
{
locale.Translations.Add(langCode, string.Empty);
Console.WriteLine($"Added '{langCode}' to Locale '{locale.ID}'");
}
else
{
Console.WriteLine($"Missing '{langCode}' in Locale '{locale.ID}'!");
}
}
foreach (string langCode in json.Languages.Where(lang => locale.Translations.ContainsKey(lang) && lang != "en_US" && locale.Translations[lang] == locale.Translations["en_US"]))
{
encounteredLanguageIssue = true;
if (!isGitRunner)
{
locale.Translations[langCode] = string.Empty;
Console.WriteLine($"Lanugage '{langCode}' is a dupelicate of en_US in Locale '{locale.ID}'! Resetting it...");
}
else
{
Console.WriteLine($"Lanugage '{langCode}' is a dupelicate of en_US in Locale '{locale.ID}'!");
}
} }
locale.Translations = locale.Translations.OrderBy(pair => pair.Key).ToDictionary(pair => pair.Key, pair => pair.Value); locale.Translations = locale.Translations.OrderBy(pair => pair.Key).ToDictionary(pair => pair.Key, pair => pair.Value);
json.Locales[i] = locale; json.Locales[i] = locale;
} }
if (isGitRunner && encounteredLanguageIssue)
throw new JsonException("1 or more locales are invalid!");
JsonSerializerOptions jsonOptions = new JsonSerializerOptions() JsonSerializerOptions jsonOptions = new JsonSerializerOptions()
{ {
WriteIndented = true, WriteIndented = true,

View File

@ -7,11 +7,10 @@
<Target Name="PostBuildTarget" AfterTargets="AfterBuild"> <Target Name="PostBuildTarget" AfterTargets="AfterBuild">
<Message Text="Running Validation Project" Importance="high" /> <Message Text="Running Validation Project" Importance="high" />
<!--<Exec WorkingDirectory="$(ProjectDir)bin\Debug\$(TargetFramework)\" <Exec WorkingDirectory="$(ProjectDir)bin\Debug\$(TargetFramework)\"
Command="Ryujinx.BuildValidationTasks.exe $(ProjectDir)..\..\" Command="Ryujinx.BuildValidationTasks &quot;$(ProjectDir)..\..\"
ConsoleToMsBuild="true" ConsoleToMsBuild="true"
/>--> />
<Exec WorkingDirectory="$(ProjectDir)bin\Debug\$(TargetFramework)" Command="dir"/>
</Target> </Target>
</Project> </Project>

View File

@ -23,11 +23,12 @@ namespace Ryujinx.BuildValidationTasks
throw new ArgumentException("Error: path is null or empty!"); throw new ArgumentException("Error: path is null or empty!");
if (!Path.Exists(args[0])) if (!Path.Exists(args[0]))
throw new ArgumentException("Error: path does not exist!"); throw new ArgumentException($"path {{{args[0]}}} does not exist!");
Console.WriteLine(args[0]); if (!Directory.GetDirectories(Path.GetFullPath(args[0])).Contains($"{Path.GetFullPath(args[0])}src"))
Console.WriteLine(Path.GetFullPath(args[0])); throw new ArgumentException($"path {{{args[0]}}} is not a valid ryujinx project!");
LocalesValidationTask.Execute(args[0]);
LocalesValidationTask.Execute(Path.GetFullPath(args[0]));
} }
} }
} }