Redpoint.CommandLine 2024.1270.409

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.1270.409                
NuGet\Install-Package Redpoint.CommandLine -Version 2024.1270.409                
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.1270.409" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Redpoint.CommandLine --version 2024.1270.409                
#r "nuget: Redpoint.CommandLine, 2024.1270.409"                
#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.1270.409

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

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

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
2024.1311.540 61 11/6/2024
2024.1306.225 64 11/1/2024
2024.1306.199 64 11/1/2024
2024.1306.171 64 11/1/2024
2024.1306.117 60 11/1/2024
2024.1305.506 63 10/31/2024
2024.1305.502 74 10/31/2024
2024.1305.465 67 10/31/2024
2024.1305.442 61 10/31/2024
2024.1305.399 71 10/31/2024
2024.1299.1070 63 10/25/2024
2024.1289.621 70 10/15/2024
2024.1289.338 69 10/15/2024
2024.1277.836 78 10/5/2024
2024.1277.711 73 10/3/2024
2024.1277.695 72 10/3/2024
2024.1270.409 84 9/26/2024
2024.1269.621 100 9/25/2024
2024.1269.619 84 9/25/2024
2024.1269.605 88 9/25/2024
2024.1242.282 98 8/29/2024
2024.1242.261 79 8/29/2024
2024.1242.233 101 8/29/2024
2024.1238.829 98 8/25/2024
2024.1238.327 115 8/25/2024
2024.1225.297 112 8/12/2024
2024.1205.140 66 7/23/2024
2024.1204.110 99 7/22/2024
2024.1204.62 67 7/22/2024
2024.1190.491 100 7/8/2024
2024.1177.305 101 6/25/2024
2024.1168.700 83 6/16/2024
2024.1168.649 98 6/16/2024
2024.1168.535 85 6/16/2024
2024.1167.643 92 6/15/2024
2024.1166.989 101 6/14/2024
2024.1166.818 77 6/14/2024
2024.1166.535 80 6/14/2024
2024.1166.422 96 6/14/2024
2024.1166.362 82 6/14/2024
2024.1166.360 82 6/14/2024
2024.1165.1212 87 6/13/2024
2024.1165.1160 76 6/13/2024
2024.1165.1019 89 6/13/2024
2024.1165.978 96 6/13/2024
2024.1165.920 89 6/13/2024
2024.1165.908 77 6/13/2024
2024.1165.873 77 6/13/2024
2024.1165.830 100 6/13/2024
2024.1165.806 93 6/13/2024
2024.1165.794 76 6/13/2024
2024.1165.792 92 6/13/2024
2024.1165.761 89 6/13/2024
2024.1165.743 90 6/13/2024
2024.1165.735 76 6/13/2024
2024.1165.713 100 6/13/2024
2024.1165.640 79 6/13/2024
2024.1165.574 96 6/13/2024
2024.1165.466 92 6/13/2024
2024.1165.417 100 6/13/2024
2024.1165.392 96 6/13/2024
2024.1164.341 68 6/12/2024
2024.1155.941 105 6/3/2024
2024.1140.783 105 5/19/2024
2024.1140.692 101 5/19/2024
2024.1140.673 82 5/19/2024
2024.1129.506 106 5/8/2024
2024.1128.831 120 5/7/2024
2024.1124.465 76 5/3/2024
2024.1123.1162 73 5/2/2024
2024.1123.1117 54 5/2/2024
2024.1123.1050 65 5/2/2024
2024.1122.352 104 5/1/2024
2024.1122.233 91 5/1/2024
2024.1115.1101 114 4/24/2024
2024.1115.1048 90 4/24/2024
2024.1115.932 96 4/24/2024
2024.1115.858 80 4/24/2024
2024.1115.665 95 4/24/2024
2024.1115.648 114 4/24/2024
2024.1115.591 84 4/24/2024
2024.1101.390 93 4/10/2024
2024.1100.741 108 4/9/2024
2024.1099.526 88 4/8/2024
2024.1099.466 94 4/8/2024
2024.1098.573 111 4/7/2024
2024.1095.977 91 4/4/2024
2024.1095.847 86 4/4/2024
2024.1095.604 95 4/4/2024
2024.1095.485 107 4/4/2024
2024.1094.930 88 4/3/2024
2024.1094.910 103 4/3/2024
2024.1094.387 104 4/3/2024
2024.1094.313 106 4/3/2024
2024.1093.520 105 4/2/2024
2024.1092.240 99 4/1/2024
2024.1089.1425 109 3/29/2024
2024.1089.983 95 3/29/2024
2024.1089.942 88 3/29/2024
2024.1089.2 93 3/29/2024
2024.1088.1343 118 3/28/2024
2024.1088.1139 110 3/28/2024
2024.1088.875 105 3/28/2024
2024.1088.700 125 3/28/2024
2024.1088.603 111 3/28/2024
2024.1088.590 85 3/28/2024
2024.1088.575 114 3/28/2024
2024.1088.561 116 3/28/2024
2024.1088.506 95 3/28/2024
2024.1088.18 94 3/28/2024
2024.1087.1181 127 3/27/2024
2024.1087.1173 95 3/27/2024
2024.1087.1143 113 3/27/2024
2024.1087.1108 101 3/27/2024
2024.1087.950 130 3/27/2024
2024.1087.939 106 3/27/2024
2024.1087.252 108 3/27/2024
2024.1070.736 126 3/10/2024
2024.1049.1437 135 2/19/2024
2024.1036.571 126 2/5/2024
2024.1036.508 88 2/5/2024
2024.1032.1204 101 2/1/2024
2024.1032.1133 90 2/1/2024
2024.1032.1122 103 2/1/2024
2024.1032.1071 84 2/1/2024
2024.1032.940 107 2/1/2024
2024.1031.912 104 1/31/2024
2024.1031.893 86 1/31/2024
2024.1031.851 103 1/31/2024
2024.1031.829 100 1/31/2024
2024.1031.386 115 1/31/2024
2024.1031.318 110 1/31/2024
2024.1017.460 116 1/17/2024
2024.1017.420 104 1/17/2024
2024.1017.163 106 1/17/2024
2024.1016.414 294 1/16/2024
2024.1012.167 125 1/12/2024
2024.1011.406 108 1/11/2024
2024.1010.315 115 1/10/2024
2023.1358.326 146 12/24/2023
2023.1351.473 134 12/17/2023
2023.1351.445 105 12/17/2023
2023.1351.432 112 12/17/2023
2023.1350.478 105 12/16/2023
2023.1344.600 115 12/10/2023
2023.1344.529 121 12/10/2023
2023.1339.582 153 12/5/2023
2023.1338.1072 125 12/4/2023
2023.1336.844 126 12/2/2023
2023.1335.378 132 12/1/2023
2023.1335.236 131 12/1/2023
2023.1335.203 127 12/1/2023
2023.1334.814 121 11/30/2023
2023.1332.652 117 11/28/2023
2023.1332.622 130 11/28/2023
2023.1332.524 147 11/28/2023
2023.1331.1073 102 11/27/2023
2023.1331.423 117 11/27/2023
2023.1328.513 128 11/24/2023
2023.1327.985 134 11/23/2023
2023.1325.593 128 11/21/2023
2023.1325.551 131 11/21/2023
2023.1325.529 121 11/21/2023