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;
}
}