public static ICliBuilder AddModule(this ICliBuilder cliBuilder, ICliModule cliModule) { Ensure.NotNull(cliModule, nameof(cliModule)); cliModule.Configure(cliBuilder); return(cliBuilder); }
public static ICliBuilder AddModule(this ICliBuilder cliBuilder, Type cliModuleType) { Ensure.NotNull(cliModuleType, nameof(cliModuleType)); if (Activator.CreateInstance(cliModuleType) is ICliModule cliModule) { return(cliBuilder.AddModule(cliModule)); } return(cliBuilder); }
public static ICliBuilder AddModules(this ICliBuilder cliBuilder, Assembly assembly) { Ensure.NotNull(assembly, nameof(assembly)); var cliModuleTypes = assembly .ExportedTypes .Where(x => !x.IsAbstract && !x.IsInterface && x.IsAssignableTo(typeof(ICliModule))); cliModuleTypes.ForEach(x => cliBuilder.AddModule(x)); return(cliBuilder); }
public static ICliBuilder AddCommand <TOptions>(this ICliBuilder cliBuilder, string name, Func <TOptions, Task <CliCommandResult> > executeAsync) where TOptions : class, new() { Ensure.IsNotNullOrWhitespace(name, nameof(name)); Ensure.NotNull(executeAsync, nameof(executeAsync)); cliBuilder.AddCommand <DelegateCliCommand <TOptions>, TOptions>(x => { x.Name = name; x.OnExecuteAsync = executeAsync; }); return(cliBuilder); }
public static ICliBuilder AddModule <TModule>(this ICliBuilder cliBuilder) where TModule : class, ICliModule { return(cliBuilder.AddModule(typeof(TModule))); }
public void Configure(ICliBuilder cliBuilder) { cliBuilder.AddCommand <TestCommandOptions>("command", _ => Task.FromResult(new CliCommandResult(ReturnCode))); }