This commit is contained in:
Louis Seubert 2026-02-12 21:18:29 +01:00
commit f1d7d6accc
Signed by: louis9902
GPG key ID: 4B9DB28F826553BD
33 changed files with 1676 additions and 0 deletions

51
src/core.next/Program.cs Normal file
View file

@ -0,0 +1,51 @@
// Copyright (c) The Geekeey Authors
// SPDX-License-Identifier: EUPL-1.2
using System.CommandLine;
using System.CommandLine.Parsing;
using Geekeey.Actions.Core.Commands;
namespace Geekeey.Actions.Core;
internal sealed class Program : RootCommand
{
#pragma warning disable format // @formatter:off
public static readonly Option<Uri> Server = new GitHubContextOption<Uri>("--server", env: "GITHUB_SERVER_URL"){CustomParser = Uri};
public static readonly Option<string> Token = new GitHubContextOption<string>("--token", env: "GITHUB_TOKEN");
#pragma warning restore format // @formatter:on
public static Uri? Uri(ArgumentResult result)
{
string value;
if (!result.Tokens.Any())
{
value = Environment.GetEnvironmentVariable("GITHUB_SERVER_URL")!;
}
else
{
value = result.Tokens.Single().Value;
}
if (!System.Uri.TryCreate(value, UriKind.RelativeOrAbsolute, out var uri))
{
result.AddError("Not a valid URI.");
return null;
}
return uri;
}
private Program()
{
Add(Server);
Add(Token);
Add(new Checkout());
}
private static Task<int> Main(string[] args)
{
return new Program().Parse(args).InvokeAsync();
}
}