private static Command ConfigureCommandLine(Command rootCommand) { // Add subcommands foreach (var subcommand in Subcommands) { rootCommand.AddCommand(subcommand); } // Workload command is behind a feature flag during development if (Env.GetEnvironmentVariableAsBool("DEVENABLEWORKLOADCOMMAND", defaultValue: false)) { rootCommand.AddCommand(WorkloadCommandParser.GetCommand()); } //Add internal commands rootCommand.AddCommand(InstallSuccessCommand); // Add options rootCommand.AddOption(DiagOption); rootCommand.AddOption(VersionOption); rootCommand.AddOption(InfoOption); rootCommand.AddOption(ListSdksOption); rootCommand.AddOption(ListRuntimesOption); // Add argument rootCommand.AddArgument(DotnetSubCommand); return(rootCommand); }
public static void AddWorkloadCommandNuGetRestoreActionConfigOptions(this Command command, bool Hide = false) { command.AddOption(Hide ? HiddenDisableParallelOption : DisableParallelOption); command.AddOption(Hide ? HiddenIgnoreFailedSourcesOption : IgnoreFailedSourcesOption); command.AddOption(Hide ? HiddenNoCacheOption : NoCacheOption); command.AddOption(Hide ? HiddenInteractiveRestoreOption : InteractiveRestoreOption); }
public static void AddWorkloadCommandNuGetRestoreActionConfigOptions(this Command command) { command.AddOption(DisableParallelOption); command.AddOption(IgnoreFailedSourcesOption); command.AddOption(NoCacheOption); command.AddOption(InteractiveRestoreOption); }
private static Command ConfigureCommandLine(Command rootCommand) { // Add subcommands foreach (var subcommand in Subcommands) { rootCommand.AddCommand(subcommand); } rootCommand.AddCommand(WorkloadCommandParser.GetCommand()); //Add internal commands rootCommand.AddCommand(InstallSuccessCommand); // Add options rootCommand.AddOption(DiagOption); rootCommand.AddOption(VersionOption); rootCommand.AddOption(InfoOption); rootCommand.AddOption(ListSdksOption); rootCommand.AddOption(ListRuntimesOption); // Add argument rootCommand.AddArgument(DotnetSubCommand); return(rootCommand); }
internal static CommandLineCommand WithHandler(this CommandLineCommand command, string name) { var flags = BindingFlags.NonPublic | BindingFlags.Static; var method = typeof(Program).GetMethod(name, flags); var handler = CommandHandler.Create(method !); command.Handler = handler; return(command); }
public static System.CommandLine.Command Build() { var command = new System.CommandLine.Command( "map", "地図を生成します" ) { QuakeSubCommand.Build(), TsunamiSubCommand.Build(), UserquakeSubCommand.Build(), }; return(command); }
private static RootCommand MapCommands(IEnumerable <ICommandHandler> handlers) { var commandsMap = new Dictionary <Type, Infrastructure.Command>(); foreach (var handler in handlers) { var handlerType = handler?.GetType(); var commandOptionsType = handlerType?.BaseType?.GenericTypeArguments[0]; if (commandOptionsType != null) { var commandAttribute = commandOptionsType.GetCustomAttribute <CommandAttribute>(); if (commandAttribute != null) { var command = new Infrastructure.Command(commandAttribute.Name, commandAttribute.Description) { Parent = commandAttribute.Parent }; command.AddOptions(commandOptionsType); var handlerMethod = handlerType?.GetMethod(nameof(ICommandHandler.InvokeAsync)); command.Handler = CommandHandler.Create(handlerMethod !, handler); commandsMap.Add(commandOptionsType, command); } } } var parentGroups = commandsMap.GroupBy(x => x.Value.Parent, x => x.Key).ToList(); var rootCommand = new RootCommand(); foreach (var parentGroup in parentGroups) { System.CommandLine.Command command = parentGroup.Key is null ? rootCommand : commandsMap[parentGroup.Key]; foreach (var child in parentGroup) { command.AddCommand(commandsMap[child]); } } return(rootCommand); }
public static System.CommandLine.Command Build() { var command = new System.CommandLine.Command( "userquake", "地震感知情報の地図を生成します" ) { new Option <string>("--output", () => "output.png"), new Option <bool>("--trim", () => true), new Option <MapType>("--map-type", () => MapType.JAPAN_1024), new Option <string[]>(new[] { "-a", "--areacode" }, () => Array.Empty <string>()), new Option <double[]>(new[] { "-c", "--confidence" }, () => Array.Empty <double>()), new Option <string>("--confidences-file"), }; command.Handler = CommandHandler.Create <UserquakeOptions>(UserquakeHandler); return(command); }
public static System.CommandLine.Command Build() { var command = new System.CommandLine.Command( "tsunami", "津波予報の地図を生成します" ) { new Option <string>("--output", () => "output.png"), new Option <bool>("--trim", () => true), new Option <MapType>("--map-type", () => MapType.JAPAN_1024), new Option <string[]>(new[] { "-c", "--category" }, () => Array.Empty <string>()), new Option <string[]>(new[] { "-r", "--region" }, () => Array.Empty <string>()), new Option <string>("--regions-file"), new Option <bool>("--draw", () => true), }; command.Handler = CommandHandler.Create <TsunamiOptions>(TsunamiHandler); return(command); }
private static Command ConfigureCommandLine(Command rootCommand) { // Add subcommands foreach (var subcommand in Subcommands) { rootCommand.AddCommand(subcommand); } // Add options rootCommand.AddOption(DiagOption); rootCommand.AddOption(VersionOption); rootCommand.AddOption(InfoOption); rootCommand.AddOption(ListSdksOption); rootCommand.AddOption(ListRuntimesOption); // Add argument rootCommand.AddArgument(DotnetSubCommand); return(rootCommand); }
public static System.CommandLine.Command Build() { var command = new System.CommandLine.Command( "quake", "地震情報の地図を生成します" ) { new Option <string>("--output", () => "output.png"), new Option <bool>("--trim", () => true), new Option <MapType>("--map-type", () => MapType.JAPAN_1024), new Option <double?>("--latitude"), new Option <double?>("--longitude"), new Option <string[]>(new[] { "-p", "--pref", "--prefecture" }, () => Array.Empty <string>()), new Option <string[]>(new[] { "-n", "--name" }, () => Array.Empty <string>()), new Option <int[]>(new[] { "-s", "--scale" }, () => Array.Empty <int>()), new Option <string>("--points-file"), }; command.Handler = CommandHandler.Create <QuakeOptions>(QuakeHandler); return(command); }
public static void AddOptions(this System.CommandLine.Command command, Type commandOptionsType) { var propertyInfos = commandOptionsType.GetProperties(DeclaredOnly); foreach (var propertyInfo in propertyInfos) { var optionAttribute = propertyInfo.GetCustomAttribute <OptionAttribute>(); if (optionAttribute == null) { continue; } var option = new Option(optionAttribute.Aliases, optionAttribute.Description) { IsRequired = optionAttribute.IsRequired, Argument = new Argument { ArgumentType = propertyInfo.PropertyType } }; command.AddOption(option); } }