static int Main(string[] args) { // cmd> --index-file Sample/Index.xml --translator-key [get in azure] return(App.RunApplication(() => { var loader = new AppDomainCommandLoader(); loader.IgnoreCommand <ArgsHistoryCommand>(); var app = new App(loader.GetFromAppDomain()); app.OnException += (result, ex) => { var msg = ex.Message + (ex.InnerException == null ? "" : "\r\n" + ex.InnerException.Message); app.Console.Error(msg, false, true); app.Console.Error(ex.StackTrace); if (ex.InnerException != null) { if (ex.InnerException is AggregateException list) { foreach (var exInner in list.InnerExceptions) { app.Console.Error(exInner.Message, false, true); app.Console.Error(" --- Inner exception: " + ex.InnerException.StackTrace, false, true); } } else { app.Console.Error(" --- Inner exception: " + ex.InnerException.StackTrace); } } }; return app; })); }
public static int Main(string[] args) { return(App.RunApplication(() => { var loader = new AppDomainCommandLoader(); //loader.IgnoreCommand<ArgsHistoryCommand>(); // teste var app = new App(loader.GetFromAppDomain()); app.Console.ColorRead = System.ConsoleColor.Blue; app.Console.Verbose = Verbose.All; app.OnException += (result, ex) => app.Console.Error(Utils.GetExceptionDetails(ex)); return app; })); }
public static void Main(string[] args) { // Create loader instance var loader = new AppDomainCommandLoader(); // Remove unwanted command loader.IgnoreCommand <FirstCommand>(); loader.IgnoreCommand <VerboseCommand>(); loader.IgnoreCommand <ArgsHistoryCommand>(); // Get all commands with 'ignored' filter var commandsTypes = loader.GetFromAppDomain(); new App(commandsTypes).Run(args); }
private void Initialize(IEnumerable <Type> commandsTypes = null) { // load all in app domain if the list = null if (commandsTypes == null) { commandsTypes = new AppDomainCommandLoader().GetFromAppDomain(); } var propAppName = typeof(Command).GetProperties().First(p => p.PropertyType == typeof(App)).Name; var commands = commandsTypes .Select(type => this.CreateCommandInstance(type, propAppName)) .ToList(); // remove commands that are only for debugs commands.RemoveAll(f => !Development.IsAttached && f.OnlyInDebug); // validate if the list is empty if (!commands.Any()) { throw new Exception("No command found"); } var helpCommands = commands.Where(f => f is IHelpCommand).ToList(); if (helpCommands.Empty()) { commands = new List <Command>(commands) { this.CreateCommandInstance <HelpCommand>(propAppName) }; } else if (helpCommands.Count > 1) { commands.Remove(helpCommands.First(f => f is HelpCommand)); } // mapping this.Maps = this._executor.GetMaps(commands).ToList(); this.Commands = commands; }
public static int Main(string[] args) { var commands = (from type in typeof(Program).Assembly.GetTypes() where typeof(Command).IsAssignableFrom(type) && type.IsInterface() == false && type.IsAbstract() == false select type).ToList(); return(App.RunApplication(() => { var loader = new AppDomainCommandLoader(commands); loader.IgnoreCommand <ArgsHistoryCommand>(); // Está com problema //var app = new App(loader.GetFromAppDomain()); var app = new App(commands); app.Console.ColorRead = System.ConsoleColor.Blue; app.Console.Verbose = Verbose.All; app.OnException += (result, ex) => app.Console.Error(Utils.GetExceptionDetails(ex)); return app; })); }