Beispiel #1
0
        public int Run(string bounceDirectory, string [] rawArguments)
        {
            try {
                Directory.SetCurrentDirectory(Path.GetDirectoryName(bounceDirectory));
                var parameters = ParsedArguments(rawArguments);
                Parameters.Main = new Parameters(parameters);

                var dependencyResolver = new AttributedDependencyResolvers();
                var tasks = Tasks(bounceDirectory, dependencyResolver);

                if (rawArguments.Length > 0)
                {
                    TaskRunner.RunTask(TaskName(rawArguments), parameters, tasks);
                }
                else
                {
                    UsageHelp.WriteUsage(Console.Out, tasks);
                }
                return(0);
            } catch (BounceException e) {
                e.Explain(Console.Error);
                return(1);
            } catch (ReflectionTypeLoadException e) {
                foreach (var loaderException in e.LoaderExceptions)
                {
                    Console.Error.WriteLine(loaderException);
                }
                return(1);
            }
            catch (Exception e)
            {
                Console.Error.WriteLine(e);
                return(1);
            }
        }
Beispiel #2
0
 /// <inheritdoc />
 public void QueueTask(string queueId, ICommand command)
 {
     taskQueue.AddTask(queueId, command);
     taskRunner.RunTask(queueId);
 }