generated from DevPlus1/Unity-Customer-Template
Initial commit
This commit is contained in:
commit
ed87277ef8
64 changed files with 4639 additions and 0 deletions
114
Assets/RL_DevPlus1/Editor/ProjectAnalyzer/RLGitReportImporter.cs
Normal file
114
Assets/RL_DevPlus1/Editor/ProjectAnalyzer/RLGitReportImporter.cs
Normal file
|
|
@ -0,0 +1,114 @@
|
|||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Text.RegularExpressions;
|
||||
using UnityEngine;
|
||||
|
||||
namespace RunlevelSystems.DevPlus1.EditorTools
|
||||
{
|
||||
public static class RLGitReportImporter
|
||||
{
|
||||
private static readonly string[] ExpectedReports =
|
||||
{
|
||||
"errors.md",
|
||||
"api-reference.md",
|
||||
"file-purpose.md",
|
||||
"call-map.md",
|
||||
"unity-scripts.md",
|
||||
"code-docs-summary.md",
|
||||
"project-flow.md",
|
||||
"summary.md",
|
||||
"generated-files.md"
|
||||
};
|
||||
|
||||
public static RLGitReportSummary ImportGitReports()
|
||||
{
|
||||
RLGitReportSummary summary = new RLGitReportSummary();
|
||||
string repoRoot = Directory.GetParent(Application.dataPath).FullName;
|
||||
string reportsFolder = Path.Combine(repoRoot, "reports");
|
||||
summary.reportsFolderFound = Directory.Exists(reportsFolder);
|
||||
|
||||
if (!summary.reportsFolderFound)
|
||||
{
|
||||
summary.notes = "Repository-root reports folder was not found. Run Forgejo reports or local scripts first if Git analysis is needed.";
|
||||
foreach (string report in ExpectedReports)
|
||||
{
|
||||
summary.missingReports.Add("reports/" + report);
|
||||
}
|
||||
return summary;
|
||||
}
|
||||
|
||||
foreach (string report in ExpectedReports)
|
||||
{
|
||||
string path = Path.Combine(reportsFolder, report);
|
||||
if (File.Exists(path))
|
||||
{
|
||||
summary.foundReports.Add("reports/" + report);
|
||||
}
|
||||
else
|
||||
{
|
||||
summary.missingReports.Add("reports/" + report);
|
||||
}
|
||||
}
|
||||
|
||||
string errorsPath = Path.Combine(reportsFolder, "errors.md");
|
||||
summary.validationReportFound = File.Exists(errorsPath);
|
||||
if (summary.validationReportFound)
|
||||
{
|
||||
string text = File.ReadAllText(errorsPath);
|
||||
summary.validationFoundErrors = text.Contains("CUSTOMER CODE ERRORS FOUND");
|
||||
summary.validationWarnings = ExtractCount(text, @"Warnings:\s*(\d+)");
|
||||
summary.validationErrors = ExtractCount(text, @"Errors:\s*(\d+)");
|
||||
}
|
||||
|
||||
summary.apiReferenceFound = File.Exists(Path.Combine(reportsFolder, "api-reference.md"));
|
||||
summary.filePurposeFound = File.Exists(Path.Combine(reportsFolder, "file-purpose.md"));
|
||||
summary.staticCallMapFound = File.Exists(Path.Combine(reportsFolder, "call-map.md"));
|
||||
summary.unityScriptReportFound = File.Exists(Path.Combine(reportsFolder, "unity-scripts.md"));
|
||||
|
||||
ReadProjectFlow(Path.Combine(reportsFolder, "project-flow.md"), summary);
|
||||
summary.notes = "Imported repository-root Git reports with best-effort parsing.";
|
||||
return summary;
|
||||
}
|
||||
|
||||
private static int ExtractCount(string text, string pattern)
|
||||
{
|
||||
Match match = Regex.Match(text, pattern);
|
||||
if (match.Success && int.TryParse(match.Groups[1].Value, out int value))
|
||||
{
|
||||
return value;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
private static void ReadProjectFlow(string path, RLGitReportSummary summary)
|
||||
{
|
||||
if (!File.Exists(path))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
string[] lines = File.ReadAllLines(path);
|
||||
bool inEntry = false;
|
||||
bool inImportant = false;
|
||||
|
||||
foreach (string line in lines)
|
||||
{
|
||||
if (line.StartsWith("## "))
|
||||
{
|
||||
inEntry = line.Contains("Likely Entry Point") || line.Contains("Possible Startup");
|
||||
inImportant = line.Contains("Important Files");
|
||||
continue;
|
||||
}
|
||||
|
||||
if (line.StartsWith("- ") && inEntry)
|
||||
{
|
||||
summary.likelyEntryPoints.Add(line.Substring(2));
|
||||
}
|
||||
else if (line.StartsWith("- ") && inImportant)
|
||||
{
|
||||
summary.importantFiles.Add(line.Substring(2));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue