Esempio n. 1
0
        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;
            }));
        }
Esempio n. 2
0
 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;
     }));
 }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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;
        }
Esempio n. 5
0
        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;
            }));
        }