Files
2026-07-10 10:24:29 +08:00

36 lines
1.3 KiB
C#

using System;
using System.IO;
using XWorld.PublishTool;
namespace XWorld.PublishTool.Cli
{
// 瘦壳:参数解析 → PublishLayout(全部逻辑在 PublishTool 库,有 xUnit 覆盖)
internal static class Program
{
// 退出码:0 成功;1 参数错误;2 发布失败
private static int Main(string[] args)
{
CliOptions o;
try { o = CliOptions.Parse(args); }
catch (ArgumentException e) { Console.Error.WriteLine(e.Message); return 1; }
try
{
GameSpec spec = GameSpecJson.ParseFile(o.SpecPath);
string key = o.KeyPath == null ? null : File.ReadAllText(o.KeyPath);
var layout = new PublishLayout();
if (o.Mode == "server") layout.PublishServer(o.Src, o.Out, spec, key);
else layout.PublishClient(o.Src, o.Out, spec, key);
Console.WriteLine($"published {o.Mode} {spec.GameId}/{spec.Version} -> {o.Out}" +
(key == null ? " [WARN] 未签名(files.txt.sig 为空)" : " [signed]"));
return 0;
}
catch (Exception e)
{
Console.Error.WriteLine("publish failed: " + e.Message);
return 2;
}
}
}
}