Port python packaging to Content.Packaging (#21458)
This commit is contained in:
@@ -1,68 +1,44 @@
|
||||
using System.Diagnostics;
|
||||
using System.IO.Compression;
|
||||
using Content.Packaging;
|
||||
using Content.Packaging;
|
||||
using Robust.Packaging;
|
||||
using Robust.Packaging.AssetProcessing.Passes;
|
||||
using Robust.Packaging.Utility;
|
||||
using Robust.Shared.Timing;
|
||||
|
||||
IPackageLogger logger = new PackageLoggerConsole();
|
||||
|
||||
logger.Info("Clearing release/ directory");
|
||||
Directory.CreateDirectory("release");
|
||||
|
||||
var skipBuild = args.Contains("--skip-build");
|
||||
|
||||
if (!skipBuild)
|
||||
WipeBin();
|
||||
|
||||
await Build(skipBuild);
|
||||
|
||||
async Task Build(bool skipBuild)
|
||||
if (!CommandLineArgs.TryParse(args, out var parsed))
|
||||
{
|
||||
logger.Info("Building project...");
|
||||
|
||||
if (!skipBuild)
|
||||
{
|
||||
await ProcessHelpers.RunCheck(new ProcessStartInfo
|
||||
{
|
||||
FileName = "dotnet",
|
||||
ArgumentList =
|
||||
{
|
||||
"build",
|
||||
Path.Combine("Content.Client", "Content.Client.csproj"),
|
||||
"-c", "Release",
|
||||
"--nologo",
|
||||
"/v:m",
|
||||
"/t:Rebuild",
|
||||
"/p:FullRelease=true",
|
||||
"/m"
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
logger.Info("Packaging client...");
|
||||
|
||||
var sw = RStopwatch.StartNew();
|
||||
|
||||
{
|
||||
using var zipFile =
|
||||
File.Open(Path.Combine("release", "SS14.Client.zip"), FileMode.Create, FileAccess.ReadWrite);
|
||||
using var zip = new ZipArchive(zipFile, ZipArchiveMode.Update);
|
||||
var writer = new AssetPassZipWriter(zip);
|
||||
|
||||
await ContentPackaging.WriteResources("", writer, logger, default);
|
||||
|
||||
await writer.FinishedTask;
|
||||
}
|
||||
|
||||
logger.Info($"Finished packaging in {sw.Elapsed}");
|
||||
logger.Error("Unable to parse args, aborting.");
|
||||
return;
|
||||
}
|
||||
|
||||
if (parsed.WipeRelease)
|
||||
WipeRelease();
|
||||
|
||||
if (!parsed.SkipBuild)
|
||||
WipeBin();
|
||||
|
||||
if (parsed.Client)
|
||||
{
|
||||
await ClientPackaging.PackageClient(parsed.SkipBuild, logger);
|
||||
}
|
||||
else
|
||||
{
|
||||
await ServerPackaging.PackageServer(parsed.SkipBuild, parsed.HybridAcz, logger, parsed.Platforms);
|
||||
}
|
||||
|
||||
void WipeBin()
|
||||
{
|
||||
logger.Info("Clearing old build artifacts (if any)...");
|
||||
|
||||
Directory.Delete("bin", recursive: true);
|
||||
if (Directory.Exists("bin"))
|
||||
Directory.Delete("bin", recursive: true);
|
||||
}
|
||||
|
||||
void WipeRelease()
|
||||
{
|
||||
if (Directory.Exists("release"))
|
||||
{
|
||||
logger.Info("Cleaning old release packages (release/)...");
|
||||
Directory.Delete("release", recursive: true);
|
||||
}
|
||||
|
||||
Directory.CreateDirectory("release");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user