Exemplo n.º 1
0
        private void EnsureAllRequiredParametersAreSet(CommandLineParameters parameters, IEnumerable <Target> targetsToBuild)
        {
            var tasks = targetsToBuild.Select(t => t.Task);

            foreach (IObsoleteTask task in tasks)
            {
                IEnumerable <IParameter> parametersForTask = ParameterFinder.FindParametersInTask(task);
                parameters.EnsureAllRequiredParametersHaveValues(parametersForTask);
            }
        }
Exemplo n.º 2
0
        public void Run(string[] args, MethodInfo getTargetsMethod)
        {
            TargetsPath = new Uri(getTargetsMethod.Module.Assembly.CodeBase).LocalPath;

            var parameters = new CommandLineParameters();

            try {
                IDictionary <string, IObsoleteTask> targets = GetTargetsFromAssembly(getTargetsMethod, parameters);

                ParsedCommandLineParameters parsedParameters = ParseCommandLineArguments(args);

                string[] buildArguments = parsedParameters.RemainingArguments;

                CommandAndTargets commandAndTargets = CommandAndTargetParser.ParseCommandAndTargetNames(buildArguments, targets);

                if (commandAndTargets.Targets.Count() >= 1)
                {
                    var bounce = new Bounce();

                    InterpretParameters(parameters, parsedParameters, bounce);

                    try
                    {
                        EnsureAllRequiredParametersAreSet(parameters, commandAndTargets.Targets);

                        BuildTargets(bounce, commandAndTargets);
                    }
                    catch (BounceException ce)
                    {
                        ce.Explain(bounce.LogOptions.StdErr);
                        Environment.Exit(1);
                    }
                }
                else
                {
                    System.Console.WriteLine("usage: bounce build|clean target-name");
                    PrintAvailableTargets(targets);
                    Environment.Exit(1);
                }
            } catch (BounceException ce) {
                ce.Explain(System.Console.Error);
                Environment.Exit(1);
            }
        }
Exemplo n.º 3
0
 private IDictionary <string, IObsoleteTask> GetTargetsFromAssembly(MethodInfo getTargetsMethod, CommandLineParameters parameters)
 {
     return(TargetsRetriever.GetTargetsFromAssembly(getTargetsMethod, parameters));
 }