Redpoint.CommandLine 2024.1177.305

The ID prefix of this package has been reserved for one of the owners of this package by NuGet.org. Prefix Reserved
dotnet add package Redpoint.CommandLine --version 2024.1177.305
NuGet\Install-Package Redpoint.CommandLine -Version 2024.1177.305
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Redpoint.CommandLine" Version="2024.1177.305" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Redpoint.CommandLine --version 2024.1177.305
#r "nuget: Redpoint.CommandLine, 2024.1177.305"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Redpoint.CommandLine as a Cake Addin
#addin nuget:?package=Redpoint.CommandLine&version=2024.1177.305

// Install Redpoint.CommandLine as a Cake Tool
#tool nuget:?package=Redpoint.CommandLine&version=2024.1177.305

Redpoint.CommandLine

This library provides APIs for building dependency injected console applications, with both commands and option declarations being dependency injected.

To use this library, first define your command:

internal class SomeAction
{
	public class Options
	{
		public Option<string> SomeOpt = new Option<string>("--opt", "My option description.");

		// Add more fields or properties that use Option<> or Argument<> and they'll be automatically
		// registered to the command line parser.
	}

	public static Command CreateCommand(ICommandBuilder builder)
	{
		return new Command("some-action", "The description of your some-action command.");
	}

	public class CommandInstance : ICommandInstance
	{
        private readonly ILogger<CommandInstance> _logger;
        private readonly Options _options;

        public CommandInstance(
            ILogger<CommandInstance> logger,
            Options options)
        {
            _logger = logger;
            _options = options;
        }

        public Task<int> ExecuteAsync(ICommandInvocationContext context)
        {
            // Example on how to access an option's value.
            var value = context.ParseResult.GetValueForOption(_options.SomeOpt);

            // ... implement your command here ...
            _logger.LogInformation("Hello world!");

            // Return the exit code for the application.
            return Task.FromResult(0);
        }
	}
}

To register and execute commands, in your Program.Main:

// Use the command line builder APIs to build the root command.
var rootCommand = CommandLineBuilder.NewBuilder()
    .AddGlobalRuntimeServices((builder, services) =>
    {
        // Register global runtime services here, such as services.AddLogging(...)
    })
    .SetGlobalExecutionHandler(async (sp, executeCommand) =>
    {
        // Can be used to wrap execution of all commands, such as capturing
        // exceptions and logging them:

        var logger = sp.GetRequiredService<ILogger<Program>>();
        try
        {
            return await executeCommand().ConfigureAwait(true);
        }
        catch (Exception ex)
        {
            logger.LogError(ex, $"Uncaught exception during command execution: {ex}");
            return 1;
        }
    })
    // Add each of your commands like this:
    .AddCommand<SomeAction.CommandInstance, SomeAction.Options>(SomeAction.CreateCommand)
    // Then build the root command to use below.
    .Build("My console application description.");

// Parse and execute the command.
var exitCode = await rootCommand.InvokeAsync(args).ConfigureAwait(false);
await Console.Out.FlushAsync().ConfigureAwait(false);
await Console.Error.FlushAsync().ConfigureAwait(false);
Environment.Exit(exitCode);
throw new BadImageFormatException();
Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on Redpoint.CommandLine:

Package Downloads
Redpoint.CloudFramework.CLI The ID prefix of this package has been reserved for one of the owners of this package by NuGet.org.

The command line tool for Redpoint.CloudFramework.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
2024.1177.305 66 6/25/2024
2024.1168.700 70 6/16/2024
2024.1168.649 69 6/16/2024
2024.1168.535 70 6/16/2024
2024.1167.643 67 6/15/2024
2024.1166.989 72 6/14/2024
2024.1166.818 64 6/14/2024
2024.1166.535 67 6/14/2024
2024.1166.422 66 6/14/2024
2024.1166.362 69 6/14/2024
2024.1166.360 69 6/14/2024
2024.1165.1212 64 6/13/2024
2024.1165.1160 63 6/13/2024
2024.1165.1019 62 6/13/2024
2024.1165.978 65 6/13/2024
2024.1165.920 62 6/13/2024
2024.1165.908 66 6/13/2024
2024.1165.873 65 6/13/2024
2024.1165.830 66 6/13/2024
2024.1165.806 65 6/13/2024
2024.1165.794 64 6/13/2024
2024.1165.792 65 6/13/2024
2024.1165.761 65 6/13/2024
2024.1165.743 61 6/13/2024
2024.1165.735 63 6/13/2024
2024.1165.713 71 6/13/2024
2024.1165.640 67 6/13/2024
2024.1165.574 70 6/13/2024
2024.1165.466 66 6/13/2024
2024.1165.417 68 6/13/2024
2024.1165.392 67 6/13/2024
2024.1164.341 59 6/12/2024
2024.1155.941 78 6/3/2024
2024.1140.783 77 5/19/2024
2024.1140.692 71 5/19/2024
2024.1140.673 72 5/19/2024
2024.1129.506 77 5/8/2024
2024.1128.831 85 5/7/2024
2024.1124.465 53 5/3/2024
2024.1123.1162 48 5/2/2024
2024.1123.1117 45 5/2/2024
2024.1123.1050 42 5/2/2024
2024.1122.352 73 5/1/2024
2024.1122.233 76 5/1/2024
2024.1115.1101 88 4/24/2024
2024.1115.1048 65 4/24/2024
2024.1115.932 88 4/24/2024
2024.1115.858 72 4/24/2024
2024.1115.665 87 4/24/2024
2024.1115.648 77 4/24/2024
2024.1115.591 71 4/24/2024
2024.1101.390 78 4/10/2024
2024.1100.741 82 4/9/2024
2024.1099.526 82 4/8/2024
2024.1099.466 76 4/8/2024
2024.1098.573 86 4/7/2024
2024.1095.977 85 4/4/2024
2024.1095.847 80 4/4/2024
2024.1095.604 83 4/4/2024
2024.1095.485 85 4/4/2024
2024.1094.930 82 4/3/2024
2024.1094.910 86 4/3/2024
2024.1094.387 84 4/3/2024
2024.1094.313 87 4/3/2024
2024.1093.520 92 4/2/2024
2024.1092.240 90 4/1/2024
2024.1089.1425 83 3/29/2024
2024.1089.983 80 3/29/2024
2024.1089.942 73 3/29/2024
2024.1089.2 83 3/29/2024
2024.1088.1343 86 3/28/2024
2024.1088.1139 83 3/28/2024
2024.1088.875 83 3/28/2024
2024.1088.700 86 3/28/2024
2024.1088.603 78 3/28/2024
2024.1088.590 75 3/28/2024
2024.1088.575 87 3/28/2024
2024.1088.561 83 3/28/2024
2024.1088.506 82 3/28/2024
2024.1088.18 86 3/28/2024
2024.1087.1181 90 3/27/2024
2024.1087.1173 80 3/27/2024
2024.1087.1143 88 3/27/2024
2024.1087.1108 85 3/27/2024
2024.1087.950 99 3/27/2024
2024.1087.939 90 3/27/2024
2024.1087.252 79 3/27/2024
2024.1070.736 91 3/10/2024
2024.1049.1437 94 2/19/2024
2024.1036.571 91 2/5/2024
2024.1036.508 75 2/5/2024
2024.1032.1204 82 2/1/2024
2024.1032.1133 73 2/1/2024
2024.1032.1122 76 2/1/2024
2024.1032.1071 72 2/1/2024
2024.1032.940 78 2/1/2024
2024.1031.912 78 1/31/2024
2024.1031.893 76 1/31/2024
2024.1031.851 73 1/31/2024
2024.1031.829 73 1/31/2024
2024.1031.386 77 1/31/2024
2024.1031.318 77 1/31/2024
2024.1017.460 104 1/17/2024
2024.1017.420 75 1/17/2024
2024.1017.163 84 1/17/2024
2024.1016.414 182 1/16/2024
2024.1012.167 87 1/12/2024
2024.1011.406 99 1/11/2024
2024.1010.315 92 1/10/2024
2023.1358.326 120 12/24/2023
2023.1351.473 106 12/17/2023
2023.1351.445 82 12/17/2023
2023.1351.432 89 12/17/2023
2023.1350.478 92 12/16/2023
2023.1344.600 98 12/10/2023
2023.1344.529 88 12/10/2023
2023.1339.582 112 12/5/2023
2023.1338.1072 93 12/4/2023
2023.1336.844 107 12/2/2023
2023.1335.378 101 12/1/2023
2023.1335.236 107 12/1/2023
2023.1335.203 94 12/1/2023
2023.1334.814 112 11/30/2023
2023.1332.652 102 11/28/2023
2023.1332.622 95 11/28/2023
2023.1332.524 116 11/28/2023
2023.1331.1073 79 11/27/2023
2023.1331.423 101 11/27/2023
2023.1328.513 102 11/24/2023
2023.1327.985 103 11/23/2023
2023.1325.593 91 11/21/2023
2023.1325.551 112 11/21/2023
2023.1325.529 106 11/21/2023