Compare commits
1
Commits
fix
...
GenericArgParser
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
dd5c680155 |
@@ -13,28 +13,47 @@ using System.Reflection;
|
|||||||
namespace sparkcmd {
|
namespace sparkcmd {
|
||||||
class Program {
|
class Program {
|
||||||
|
|
||||||
// static object option<T>(Func<T,int> run) {return run;}
|
static object option<T>(Func<T, int> run) { return run; }
|
||||||
// static Type argType(object arg) {
|
static Type argType(object arg) {
|
||||||
// return arg.GetType().GetGenericArguments().First();
|
return arg.GetType().GetGenericArguments().First();
|
||||||
// }
|
}
|
||||||
// static int Run(Func<IEnumerable<Error>,int> on_error, params object[] args) {
|
static int Run(Func<IEnumerable<Error>, int> on_error, params Type[] runners) {
|
||||||
// var types = args.Select(argType).ToArray();
|
var run_methods =
|
||||||
// var parse = CommandLine.Parser.Default.GetType().GetMethod("ParseArguments", BindingFlags.Public).MakeGenericMethod(types);
|
runners
|
||||||
// return 3;
|
.Select(r => r.GetMethod("Run", BindingFlags.Static | BindingFlags.Public))
|
||||||
// }
|
.ToList();
|
||||||
|
var args =
|
||||||
|
run_methods
|
||||||
|
.Select(m => m.GetParameters().First().GetType());
|
||||||
|
|
||||||
|
var parser = Parser.Default.GetType().GetMethod("ParseArguments", new[] { typeof(IEnumerable<string>) });
|
||||||
|
|
||||||
|
//var types = args.Select(argType).ToArray();
|
||||||
|
//var parse = CommandLine.Parser.Default.GetType().GetMethod("ParseArguments", BindingFlags.Public).MakeGenericMethod(types);
|
||||||
|
return 3;
|
||||||
|
}
|
||||||
static int Main(string[] args) {
|
static int Main(string[] args) {
|
||||||
mbts.utils.BTSNativeMethods.provide_command_line(args, args.Length);
|
mbts.utils.BTSNativeMethods.provide_command_line(args, args.Length);
|
||||||
// note: this can be made to infer the options type list from the list of delegates
|
|
||||||
return Parser.Default
|
//return Parser.Default
|
||||||
.ParseArguments<ConfigcheckOptions,ScriptClientOptions,TailServiceOptions,ServiceTestOptions,SettingsManagerOptions,TestCommandOptions >(args)
|
//.ParseArguments<ConfigcheckOptions,ScriptClientOptions,TailServiceOptions,ServiceTestOptions,SettingsManagerOptions,TestCommandOptions>(args)
|
||||||
.MapResult<ConfigcheckOptions,ScriptClientOptions,TailServiceOptions,ServiceTestOptions,SettingsManagerOptions,TestCommandOptions,int>(
|
//.MapResult<ConfigcheckOptions,ScriptClientOptions,TailServiceOptions,ServiceTestOptions,SettingsManagerOptions,TestCommandOptions,int>(
|
||||||
Configcheck.Run,
|
// Configcheck.Run,
|
||||||
ScriptClientCommand.Run,
|
// ScriptClientCommand.Run,
|
||||||
TailService.Run,
|
// TailService.Run,
|
||||||
ServiceTest.Run,
|
// ServiceTest.Run,
|
||||||
SettingsManagerCommand.Run,
|
// SettingsManagerCommand.Run,
|
||||||
TestCommand.Run,
|
// TestCommand.Run,
|
||||||
errors => 1);
|
// errors => 1);
|
||||||
|
|
||||||
|
return Run(
|
||||||
|
errors => 1,
|
||||||
|
typeof(Configcheck),
|
||||||
|
typeof(ScriptClientCommand),
|
||||||
|
typeof(TailService),
|
||||||
|
typeof(ServiceTest),
|
||||||
|
typeof(SettingsManagerCommand),
|
||||||
|
typeof(TestCommand));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in new issue
Block a user