Skip to content

Commit

Permalink
Fix up mod list logging
Browse files Browse the repository at this point in the history
* Use a string builder
* Print assemblies in a nicer format (table)
  • Loading branch information
blowfishpro committed Sep 28, 2017
1 parent 784e7a8 commit 13850b6
Showing 1 changed file with 26 additions and 7 deletions.
33 changes: 26 additions & 7 deletions ModuleManager/MMPatchLoader.cs
Expand Up @@ -125,6 +125,7 @@ public static void AddPostPatchCallback(ModuleManagerPostPatchCallback callback)
if (!postPatchCallbacks.Contains(callback))
postPatchCallbacks.Add(callback);
}

private IEnumerable<string> GenerateModList(IPatchProgress progress)
{
#region List of mods
Expand All @@ -140,7 +141,17 @@ private IEnumerable<string> GenerateModList(IPatchProgress progress)

List<string> mods = new List<string>();

string modlist = "compiling list of loaded mods...\nMod DLLs found:\n";
StringBuilder modListInfo = new StringBuilder();

modListInfo.Append("compiling list of loaded mods...\nMod DLLs found:\n");

modListInfo.AppendFormat(
" {0,-40}{1,-30}{2,-30}{3}\n\n",
"Name",
"Assembly Version",
"Assembly File Version",
"SHA256"
);

foreach (AssemblyLoader.LoadedAssembly mod in AssemblyLoader.loadedAssemblies)
{
Expand All @@ -152,6 +163,14 @@ private IEnumerable<string> GenerateModList(IPatchProgress progress)

AssemblyName assemblyName = mod.assembly.GetName();

modListInfo.AppendFormat(
" {0,-40}{1,-30}{2,-30}{3}\n",
assemblyName.Name,
assemblyName.Version,
fileVersionInfo.FileVersion,
FileSHA(mod.assembly.Location)
);

string modInfo = " " + assemblyName.Name
+ " v" + assemblyName.Version
+
Expand All @@ -163,13 +182,13 @@ private IEnumerable<string> GenerateModList(IPatchProgress progress)
? " / v" + fileVersionInfo.FileVersion
: "");

modlist += String.Format(" {0,-50} SHA256 {1}\n", modInfo, FileSHA(mod.assembly.Location));
// modlist += String.Format(" {0,-50} SHA256 {1}\n", modInfo, FileSHA(mod.assembly.Location));

if (!mods.Contains(assemblyName.Name, StringComparer.OrdinalIgnoreCase))
mods.Add(assemblyName.Name);
}

modlist += "Non-DLL mods added (:FOR[xxx]):\n";
modListInfo.Append("Non-DLL mods added (:FOR[xxx]):\n");
foreach (UrlDir.UrlConfig cfgmod in GameDatabase.Instance.root.AllConfigs)
{
if (CommandParser.Parse(cfgmod.type, out string name) != Command.Insert)
Expand All @@ -188,7 +207,7 @@ private IEnumerable<string> GenerateModList(IPatchProgress progress)
{
// found one, now add it to the list.
mods.Add(dependency);
modlist += " " + dependency + "\n";
modListInfo.AppendFormat(" {0}\n", dependency);
}
}
catch (ArgumentOutOfRangeException)
Expand All @@ -199,7 +218,7 @@ private IEnumerable<string> GenerateModList(IPatchProgress progress)
}
}
}
modlist += "Mods by directory (sub directories of GameData):\n";
modListInfo.Append("Mods by directory (sub directories of GameData):\n");
string gameData = Path.Combine(Path.GetFullPath(KSPUtil.ApplicationRootPath), "GameData");
foreach (string subdir in Directory.GetDirectories(gameData))
{
Expand All @@ -208,10 +227,10 @@ private IEnumerable<string> GenerateModList(IPatchProgress progress)
if (!mods.Contains(cleanName, StringComparer.OrdinalIgnoreCase))
{
mods.Add(cleanName);
modlist += " " + cleanName + "\n";
modListInfo.AppendFormat(" {0}\n", cleanName);
}
}
logger.Info(modlist);
logger.Info(modListInfo.ToString());

mods.Sort();

Expand Down

0 comments on commit 13850b6

Please sign in to comment.