using System.CommandLine; namespace ReleaseBuilder; /// /// Entry point for the executable /// class Program { /// /// The supported build packages /// public static readonly IReadOnlyList SupportedPackageTargets = new[] { "win-x64-gui.zip", "win-x64-gui.msi", "win-x86-gui.zip", "win-x86-gui.msi", "win-arm64-gui.zip", "win-arm64-gui.msi", "linux-x64-gui.zip", "linux-x64-gui.deb", "linux-x64-gui.rpm", "linux-arm7-gui.deb", "linux-arm7-cli.deb", "linux-x64-cli.zip", "linux-x64-cli.deb", "linux-x64-cli.rpm", "linux-x64-cli.docker", // "linux-x64-cli.spk", // Need to add new integration with DSM WebUI "linux-arm64-cli.docker", "linux-arm64-gui.zip", "linux-arm64-gui.deb", "linux-arm64-gui.rpm", "linux-arm64-cli.zip", "linux-arm64-cli.deb", "linux-arm64-cli.rpm", // "linux-arm64-cli.spk", // Need to add new integration with DSM WebUI "linux-arm7-cli.docker", "osx-x64-gui.dmg", "osx-x64-gui.pkg", "osx-arm64-gui.dmg", "osx-arm64-gui.pkg", } .Select(x => PackageTarget.ParsePackageId(x)) .Distinct() .ToList(); /// /// The environment shared configuration /// public static readonly Configuration Configuration = Configuration.Create(); /// /// The return code of the application; shared state /// public static int? ReturnCode = 0; /// /// Invokes the builder /// /// /// static async Task Main(string[] args) { var r = await new RootCommand("Build tool for Duplicati") { Build.Command.Create(), CreateKey.Command.Create(), }.InvokeAsync(args); return ReturnCode ?? r; } }