mirror of
https://github.com/muskit/H3VR-TNH-Quality-of-Life-Improvements.git
synced 2026-06-02 20:24:26 -07:00
101 lines
4.1 KiB
C#
101 lines
4.1 KiB
C#
|
|
using System;
|
||
|
|
using System.Diagnostics;
|
||
|
|
using System.IO;
|
||
|
|
|
||
|
|
namespace MeatKit
|
||
|
|
{
|
||
|
|
public static class BuildLog
|
||
|
|
{
|
||
|
|
private static StringWriter _temp;
|
||
|
|
private static Stopwatch _sw;
|
||
|
|
private static DateTime _startTime;
|
||
|
|
private static bool _failed;
|
||
|
|
private static string _completionMessage;
|
||
|
|
private static Exception _exception;
|
||
|
|
|
||
|
|
public static void StartNew()
|
||
|
|
{
|
||
|
|
_temp = new StringWriter();
|
||
|
|
_sw = Stopwatch.StartNew();
|
||
|
|
_startTime = DateTime.Now;
|
||
|
|
}
|
||
|
|
|
||
|
|
public static void WriteLine(string text)
|
||
|
|
{
|
||
|
|
if (_temp == null) return;
|
||
|
|
_temp.WriteLine(text);
|
||
|
|
}
|
||
|
|
|
||
|
|
public static void SetCompletionStatus(bool failed, string message, Exception exception)
|
||
|
|
{
|
||
|
|
_failed = failed;
|
||
|
|
_completionMessage = message;
|
||
|
|
_exception = exception;
|
||
|
|
}
|
||
|
|
|
||
|
|
public static void Finish()
|
||
|
|
{
|
||
|
|
_sw.Stop();
|
||
|
|
|
||
|
|
StreamWriter output = new StreamWriter("AssetBundles/buildlog.txt", false);
|
||
|
|
|
||
|
|
WriteProfileInfo(output);
|
||
|
|
output.WriteLine();
|
||
|
|
output.WriteLine("--- MeatKit Build Log ---");
|
||
|
|
output.WriteLine("Start Time: " + _startTime.ToString("dddd, dd MMMM yyyy HH:mm:ssK"));
|
||
|
|
output.WriteLine("Duration : " + _sw.Elapsed.GetReadableTimespan());
|
||
|
|
output.WriteLine("Status : " + (_failed ? "FAILED" : "COMPLETED"));
|
||
|
|
if (!string.IsNullOrEmpty(_completionMessage))
|
||
|
|
output.WriteLine("Message : " + _completionMessage);
|
||
|
|
if (_exception != null)
|
||
|
|
{
|
||
|
|
output.WriteLine("Exception :");
|
||
|
|
output.WriteLine(_exception.ToString());
|
||
|
|
}
|
||
|
|
|
||
|
|
output.WriteLine("\n--- Full build log ---");
|
||
|
|
output.Write(_temp.ToString());
|
||
|
|
|
||
|
|
output.Close();
|
||
|
|
output.Dispose();
|
||
|
|
_temp = null;
|
||
|
|
}
|
||
|
|
|
||
|
|
private static void WriteProfileInfo(StreamWriter output)
|
||
|
|
{
|
||
|
|
var profile = BuildWindow.SelectedProfile;
|
||
|
|
var implicitDependencies = profile.GetRequiredDependencies();
|
||
|
|
|
||
|
|
output.WriteLine("--- Selected Build Profile ---");
|
||
|
|
output.WriteLine("Thunderstore Metadata");
|
||
|
|
output.WriteLine(" Package Name: " + profile.PackageName);
|
||
|
|
output.WriteLine(" Author : " + profile.Author);
|
||
|
|
output.WriteLine(" Version : " + profile.Version);
|
||
|
|
output.WriteLine(" Icon Set : " + (profile.Icon == null ? "No" : "Yes"));
|
||
|
|
output.WriteLine(" Readme Set : " + (profile.ReadMe == null ? "No" : "Yes"));
|
||
|
|
output.WriteLine(" Website URL : " + profile.WebsiteURL);
|
||
|
|
output.WriteLine(" Description : " + profile.Description);
|
||
|
|
output.WriteLine(" Implicit Dependencies : (" + implicitDependencies.Length + ")");
|
||
|
|
foreach (var dependency in implicitDependencies)
|
||
|
|
output.WriteLine(" " + dependency);
|
||
|
|
output.WriteLine(" Additional Dependencies: (" + profile.AdditionalDependencies.Length + ")");
|
||
|
|
foreach (var dependency in profile.AdditionalDependencies)
|
||
|
|
output.WriteLine(" " + dependency);
|
||
|
|
|
||
|
|
output.WriteLine("Script Options");
|
||
|
|
output.WriteLine(" Strip Namespaces : " + profile.StripNamespaces);
|
||
|
|
output.WriteLine(" Additional Namespaces: (" + profile.AdditionalNamespaces.Length + ")");
|
||
|
|
foreach (var @namespace in profile.AdditionalNamespaces)
|
||
|
|
output.WriteLine(" " + @namespace);
|
||
|
|
output.WriteLine(" Apply Harmony Patches: " + profile.ApplyHarmonyPatches);
|
||
|
|
|
||
|
|
output.WriteLine("Export Options");
|
||
|
|
output.WriteLine(" Build Items: (" + profile.BuildItems.Length + ")");
|
||
|
|
foreach (var buildItem in profile.BuildItems)
|
||
|
|
output.WriteLine(" " + buildItem);
|
||
|
|
output.WriteLine(" Build Action: " + profile.BuildAction);
|
||
|
|
output.WriteLine(" Export Path : " + profile.ExportPath);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|