public static void RunFileOutput(FileOutputOptions options) { Logger.InitialiseLogger(options); using (IHashHandler handler = new FileOutputHandler(options)) { handler.RunHandler(); } }
protected void DescriptionTypeTests(int descriptionType) { FileOutputOptions options = new FileOutputOptions() { DescriptionType = (DescriptionType)descriptionType, }; FileOutput fileOutput = new FileOutput(descriptionType, options); fileOutput.Create(TestData, FileOutputType); CompareFile(GetFilePath(descriptionType, false), $"{FileOutputTypeFileName}output{descriptionType}.{FileOutputTypeFileName}"); }
public virtual void WriterMinifiedTest() { FileOutputOptions options = new FileOutputOptions() { IsMinifiedFiles = true, }; FileOutput fileOutput = new FileOutput(MinifiedBuildNumber, options); fileOutput.Create(TestData, FileOutputType); Assert.IsTrue(File.Exists(GetFilePath(MinifiedBuildNumber, false))); Assert.IsTrue(File.Exists(GetFilePath(MinifiedBuildNumber, true))); }
public virtual void WriterGameStringLocalizedTests() { FileOutputOptions options = new FileOutputOptions() { IsLocalizedText = true, DescriptionType = DescriptionType.RawDescription, }; FileOutput fileOutput = new FileOutput(GamestringsBuildNumber, options); fileOutput.Create(TestData, FileOutputType); CompareFile(Path.Combine(BaseOutputDirectory, $"{BaseGamestringsDirectory}-{GamestringsBuildNumber}", $"{BaseGamestringsDirectory}_{GamestringsBuildNumber}_{LocalizationFileName}.txt"), $"{BaseGamestringsDirectory}_11111.txt"); CompareFile(Path.Combine(DefaultOutputDirectory, $"{DefaultDataNameSuffix}_{GamestringsBuildNumber}_localized.{FileOutputTypeFileName}"), $"{FileOutputTypeFileName}gamestringlocalized.{FileOutputTypeFileName}"); }
public virtual void WriterFileSplitMinifiedHasBuildNumberTest() { FileOutputOptions options = new FileOutputOptions() { IsFileSplit = true, IsMinifiedFiles = true, }; FileOutput fileOutput = new FileOutput(SplitMinifiedBuildNumber, options); fileOutput.Create(TestData, FileOutputType); string directory = GetSplitFilePath(SplitMinifiedBuildNumber, true); Assert.IsTrue(Directory.Exists(directory)); Assert.IsTrue(File.Exists(Path.Combine(directory, $"alarak.min.{FileOutputTypeFileName}"))); Assert.IsTrue(File.Exists(Path.Combine(directory, $"alexstrasza.min.{FileOutputTypeFileName}"))); }
public virtual void WriterFileSplitHasBuildNumberTest() { FileOutputOptions options = new FileOutputOptions() { IsFileSplit = true, DescriptionType = DescriptionType.RawDescription, }; FileOutput fileOutput = new FileOutput(BuildNumber, options); fileOutput.Create(TestData, FileOutputType); string directory = GetSplitFilePath(BuildNumber, false); Assert.IsTrue(Directory.Exists(directory)); CompareFile(Path.Combine(directory, $"alarak.{FileOutputTypeFileName}"), $"alarak.{FileOutputTypeFileName}"); CompareFile(Path.Combine(directory, $"alexstrasza.{FileOutputTypeFileName}"), $"alexstrasza.{FileOutputTypeFileName}"); }
public void Run() { Console.WriteLine($"{AppContext.BaseDirectory}"); Console.WriteLine($"Heroes Data Parser ({Version})"); Console.WriteLine(" --https://github.com/HeroesToolChest/HeroesDataParser"); Console.WriteLine("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"); Console.WriteLine(); int totalLocaleSuccess = 0; try { PreInitialize(); InitializeGameData(); InitializeOverrideData(); SetUpDataProcessors(); SetupValidationIgnoreFile(); // set the options for the writers FileOutputOptions options = new FileOutputOptions() { DescriptionType = DescriptionType, IsFileSplit = IsFileSplit, IsLocalizedText = IsLocalizedText, IsMinifiedFiles = CreateMinFiles, OutputDirectory = OutputDirectory, AllowDataFileWriting = !IsLocalizedText, }; foreach (Localization localization in Localizations) { options.Localization = localization; Console.ForegroundColor = ConsoleColor.DarkGreen; Console.WriteLine($"[{localization.GetFriendlyName()}]"); Console.ResetColor(); LoadGameStrings(localization); // parse gamestrings ParseGameStrings(localization); // parse data DataProcessor((parser) => { if (parser.Parse != null) { parser.ParsedItems = parser.Parse(localization); } }); // validate Console.WriteLine("Validating data..."); DataProcessor((parser) => { parser.Validate?.Invoke(localization); }); if (!ShowValidationWarnings) { Console.WriteLine(); } // write WriteFileOutput(options); totalLocaleSuccess++; } // write if (IsLocalizedText) { options.AllowDataFileWriting = true; WriteFileOutput(options); } if (ExtractFileOption != ExtractImageOptions.None) { Console.WriteLine("Extracting files..."); DataProcessor((parser) => { if (parser.ParsedItems != null) { parser.Extract?.Invoke(parser.ParsedItems !); } }); Console.WriteLine(); } if (totalLocaleSuccess == Localizations.Count) { Console.ForegroundColor = ConsoleColor.Green; } else if (totalLocaleSuccess > 0) { Console.ForegroundColor = ConsoleColor.Yellow; } else { Console.ForegroundColor = ConsoleColor.Red; } Console.WriteLine($"HDP has completed [{totalLocaleSuccess} out of {Localizations.Count} successful]."); Console.WriteLine(); } catch (Exception ex) // catch everything { WriteExceptionLog("Error", ex); Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine(ex); Console.WriteLine(); Console.ResetColor(); Environment.Exit(1); } }
private void WriteFileOutput(FileOutputOptions options) { // write FileOutput fileOutput = new FileOutput(HotsBuild, options); if (options.AllowDataFileWriting) { Console.WriteLine("Creating output file(s)..."); } else { Console.WriteLine("Creating gamestring data..."); } Console.ForegroundColor = ConsoleColor.Cyan; Console.WriteLine($"Directory: {options.OutputDirectory}"); Console.ResetColor(); DataProcessor((parser) => { if (options.AllowDataFileWriting) { if (CreateJson) { Console.Write($"[{parser.Name}] Writing json file(s)..."); if (fileOutput.Create((dynamic)parser.ParsedItems, FileOutputType.Json)) { Console.WriteLine("Done."); } else { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("Failed."); Console.ResetColor(); } } if (CreateXml) { Console.Write($"[{parser.Name}] Writing xml file(s)..."); if (fileOutput.Create((dynamic)parser.ParsedItems, FileOutputType.Xml)) { Console.WriteLine("Done."); } else { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("Failed."); Console.ResetColor(); } } } else { // only need to parsed through one type of file to get the gamestrings Console.Write($"[{parser.Name}] Writing gamestrings..."); if (fileOutput.Create((dynamic)parser.ParsedItems, FileOutputType.Json)) { Console.WriteLine("Done."); } else { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("Failed."); Console.ResetColor(); } } Console.ResetColor(); }); Console.WriteLine(); }