From 949df85170ca5a28c94c5e24641a6d41d44e6d16 Mon Sep 17 00:00:00 2001
From: Morb0 <14136326+Morb0@users.noreply.github.com>
Date: Thu, 9 Nov 2023 11:58:44 +0300
Subject: [PATCH] Update content package for Secrets
---
Content.Packaging/ClientPackaging.cs | 27 ++++++++++++++++++++++-
Content.Packaging/ServerPackaging.cs | 32 ++++++++++++++++++++++++++++
2 files changed, 58 insertions(+), 1 deletion(-)
diff --git a/Content.Packaging/ClientPackaging.cs b/Content.Packaging/ClientPackaging.cs
index 033cab71f01..fc1de7d060a 100644
--- a/Content.Packaging/ClientPackaging.cs
+++ b/Content.Packaging/ClientPackaging.cs
@@ -10,6 +10,7 @@ namespace Content.Packaging;
public static class ClientPackaging
{
+ private static readonly bool UseSecrets = Directory.Exists(Path.Combine("Secrets")); // Corvax-Secrets
///
/// Be advised this can be called from server packaging during a HybridACZ build.
///
@@ -34,6 +35,24 @@ await ProcessHelpers.RunCheck(new ProcessStartInfo
"/m"
}
});
+ if (UseSecrets)
+ {
+ await ProcessHelpers.RunCheck(new ProcessStartInfo
+ {
+ FileName = "dotnet",
+ ArgumentList =
+ {
+ "build",
+ Path.Combine("Secrets","Content.Corvax.Client", "Content.Corvax.Client.csproj"),
+ "-c", "Release",
+ "--nologo",
+ "/v:m",
+ "/t:Rebuild",
+ "/p:FullRelease=true",
+ "/m"
+ }
+ });
+ }
}
logger.Info("Packaging client...");
@@ -65,11 +84,17 @@ public static async Task WriteResources(
var inputPass = graph.Input;
+ // Corvax-Secrets-Start: Add Corvax interfaces to Magic ACZ
+ var assemblies = new List { "Content.Client", "Content.Shared", "Content.Shared.Database", "Content.Corvax.Interfaces.Client", "Content.Corvax.Interfaces.Shared" };
+ if (UseSecrets)
+ assemblies.AddRange(new[] { "Content.Corvax.Shared", "Content.Corvax.Client" });
+ // Corvax-Secrets-End
+
await RobustSharedPackaging.WriteContentAssemblies(
inputPass,
contentDir,
"Content.Client",
- new[] { "Content.Client", "Content.Shared", "Content.Shared.Database", "Content.Corvax.Interfaces.Client", "Content.Corvax.Interfaces.Shared" }, // Corvax-Secrets: Add Corvax interfaces to Magic ACZ
+ assemblies, // Corvax-Secrets
cancel: cancel);
await RobustClientPackaging.WriteClientResources(contentDir, pass, cancel);
diff --git a/Content.Packaging/ServerPackaging.cs b/Content.Packaging/ServerPackaging.cs
index d75b425561a..36ec4d6449d 100644
--- a/Content.Packaging/ServerPackaging.cs
+++ b/Content.Packaging/ServerPackaging.cs
@@ -38,6 +38,10 @@ public static class ServerPackaging
private static readonly List ServerContentAssemblies = new()
{
+ // Corvax-Secrets-Start
+ "Content.Corvax.Interfaces.Shared",
+ "Content.Corvax.Interfaces.Server",
+ // Corvax-Secrets-End
"Content.Server.Database",
"Content.Server",
"Content.Shared",
@@ -74,6 +78,8 @@ public static class ServerPackaging
"zh-Hant"
};
+ private static readonly bool UseSecrets = Directory.Exists(Path.Combine("Secrets")); // Corvax-Secrets
+
public static async Task PackageServer(bool skipBuild, bool hybridAcz, IPackageLogger logger, List? platforms = null)
{
if (platforms == null)
@@ -122,6 +128,28 @@ await ProcessHelpers.RunCheck(new ProcessStartInfo
"/m"
}
});
+ // Corvax-Secrets-Start
+ if (UseSecrets)
+ {
+ logger.Info($"Secrets found. Building secret project for {platform}...");
+ await ProcessHelpers.RunCheck(new ProcessStartInfo
+ {
+ FileName = "dotnet",
+ ArgumentList =
+ {
+ "build",
+ Path.Combine("Secrets","Content.Corvax.Server", "Content.Corvax.Server.csproj"),
+ "-c", "Release",
+ "--nologo",
+ "/v:m",
+ $"/p:TargetOs={platform.TargetOs}",
+ "/t:Rebuild",
+ "/p:FullRelease=true",
+ "/m"
+ }
+ });
+ }
+ // Corvax-Secrets-End
await PublishClientServer(platform.Rid, platform.TargetOs);
}
@@ -179,6 +207,10 @@ private static async Task WriteServerResources(
var inputPass = graph.Input;
var contentAssemblies = new List(ServerContentAssemblies);
+ // Corvax-Secrets-Start
+ if (UseSecrets)
+ contentAssemblies.AddRange(new[] { "Content.Corvax.Shared", "Content.Corvax.Server" });
+ // Corvax-Secrets-End
// Additional assemblies that need to be copied such as EFCore.
var sourcePath = Path.Combine(contentDir, "bin", "Content.Server");