Redpoint.CommandLine 2024.1140.783

Prefix Reserved
There is a newer version of this package available.
See the version list below for details.
dotnet add package Redpoint.CommandLine --version 2024.1140.783                
NuGet\Install-Package Redpoint.CommandLine -Version 2024.1140.783                
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.1140.783" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Redpoint.CommandLine --version 2024.1140.783                
#r "nuget: Redpoint.CommandLine, 2024.1140.783"                
#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.1140.783

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

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 command line tool for Redpoint.CloudFramework.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
2024.1190.491 76 7/8/2024
2024.1177.305 76 6/25/2024
2024.1168.700 75 6/16/2024
2024.1168.649 75 6/16/2024
2024.1168.535 77 6/16/2024
2024.1167.643 72 6/15/2024
2024.1166.989 77 6/14/2024
2024.1166.818 69 6/14/2024
2024.1166.535 72 6/14/2024
2024.1166.422 72 6/14/2024
2024.1166.362 74 6/14/2024
2024.1166.360 74 6/14/2024
2024.1165.1212 69 6/13/2024
2024.1165.1160 68 6/13/2024
2024.1165.1019 67 6/13/2024
2024.1165.978 70 6/13/2024
2024.1165.920 67 6/13/2024
2024.1165.908 71 6/13/2024
2024.1165.873 70 6/13/2024
2024.1165.830 71 6/13/2024
2024.1165.806 70 6/13/2024
2024.1165.794 69 6/13/2024
2024.1165.792 70 6/13/2024
2024.1165.761 70 6/13/2024
2024.1165.743 66 6/13/2024
2024.1165.735 68 6/13/2024
2024.1165.713 76 6/13/2024
2024.1165.640 72 6/13/2024
2024.1165.574 75 6/13/2024
2024.1165.466 69 6/13/2024
2024.1165.417 71 6/13/2024
2024.1165.392 70 6/13/2024
2024.1164.341 62 6/12/2024
2024.1155.941 81 6/3/2024
2024.1140.783 80 5/19/2024
2024.1140.692 74 5/19/2024
2024.1140.673 75 5/19/2024
2024.1129.506 79 5/8/2024
2024.1128.831 87 5/7/2024
2024.1124.465 55 5/3/2024
2024.1123.1162 52 5/2/2024
2024.1123.1117 47 5/2/2024
2024.1123.1050 44 5/2/2024
2024.1122.352 76 5/1/2024
2024.1122.233 79 5/1/2024
2024.1115.1101 90 4/24/2024
2024.1115.1048 68 4/24/2024
2024.1115.932 91 4/24/2024
2024.1115.858 75 4/24/2024
2024.1115.665 90 4/24/2024
2024.1115.648 80 4/24/2024
2024.1115.591 73 4/24/2024
2024.1101.390 81 4/10/2024
2024.1100.741 84 4/9/2024
2024.1099.526 82 4/8/2024
2024.1099.466 76 4/8/2024
2024.1098.573 88 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 98 4/2/2024
2024.1092.240 92 4/1/2024
2024.1089.1425 85 3/29/2024
2024.1089.983 83 3/29/2024
2024.1089.942 76 3/29/2024
2024.1089.2 86 3/29/2024
2024.1088.1343 91 3/28/2024
2024.1088.1139 88 3/28/2024
2024.1088.875 88 3/28/2024
2024.1088.700 89 3/28/2024
2024.1088.603 87 3/28/2024
2024.1088.590 78 3/28/2024
2024.1088.575 90 3/28/2024
2024.1088.561 86 3/28/2024
2024.1088.506 85 3/28/2024
2024.1088.18 89 3/28/2024
2024.1087.1181 98 3/27/2024
2024.1087.1173 83 3/27/2024
2024.1087.1143 91 3/27/2024
2024.1087.1108 88 3/27/2024
2024.1087.950 104 3/27/2024
2024.1087.939 93 3/27/2024
2024.1087.252 87 3/27/2024
2024.1070.736 98 3/10/2024
2024.1049.1437 96 2/19/2024
2024.1036.571 102 2/5/2024
2024.1036.508 78 2/5/2024
2024.1032.1204 83 2/1/2024
2024.1032.1133 79 2/1/2024
2024.1032.1122 77 2/1/2024
2024.1032.1071 73 2/1/2024
2024.1032.940 81 2/1/2024
2024.1031.912 81 1/31/2024
2024.1031.893 79 1/31/2024
2024.1031.851 76 1/31/2024
2024.1031.829 76 1/31/2024
2024.1031.386 80 1/31/2024
2024.1031.318 80 1/31/2024
2024.1017.460 107 1/17/2024
2024.1017.420 78 1/17/2024
2024.1017.163 87 1/17/2024
2024.1016.414 192 1/16/2024
2024.1012.167 88 1/12/2024
2024.1011.406 100 1/11/2024
2024.1010.315 93 1/10/2024
2023.1358.326 122 12/24/2023
2023.1351.473 112 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 100 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 113 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 81 11/27/2023
2023.1331.423 102 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 118 11/21/2023
2023.1325.529 106 11/21/2023