Added Transformation Script

This commit is contained in:
Simon Martens
2023-09-15 20:46:57 +02:00
parent 89b55be98d
commit f054c8913d
5 changed files with 285 additions and 152 deletions

View File

@@ -0,0 +1,47 @@
using System.Xml;
using System.Xml.Linq;
public static class FileOperations {
public static void SaveFile(List<(string, XDocument, bool)> Documents, string dest) {
foreach (var d in Documents) {
if (d.Item3) {
if (!Directory.Exists(dest)) {
Directory.CreateDirectory(dest);
}
var filenameold = d.Item1.Split('/', StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries).LastOrDefault();
if (filenameold == null) return;
var path = Path.Combine(dest, filenameold);
// element.Save(path, SaveOptions.DisableFormatting);
XmlWriterSettings set = new XmlWriterSettings() {
CheckCharacters = false,
Encoding = System.Text.Encoding.UTF8,
};
using (XmlWriter writer = XmlWriter.Create(path, set)) {
d.Item2.Save(writer);
}
// using (var targetStream = System.IO.File.Create(path)) {
// element.Save(targetStream, SaveOptions.DisableFormatting);
//}
}
}
}
// Gets XML data if branch name is correct (to prevent data errors)
public static string[] GetXMLs(string path, string git_path, string? branch_name) {
// BASIC CHECKS
if (branch_name != null) {
if (File.Exists(git_path + ".git/HEAD")) {
var text = File.ReadAllText(git_path + ".git/HEAD").Trim();
if (!text.EndsWith(branch_name))
throw new("Not it the Branch " + branch_name);
} else throw new("Specified Paths do not exist");
}
if (!Directory.Exists(path)) throw new("Directory does not exist!");
var xmls = Directory.GetFiles(path, "*.xml");
if (xmls == null || !xmls.Any()) throw new("No XML Data fonund!");
return xmls;
}
}