Beispiel #1
0
        public virtual ExitCode Execute(ITaskInteraction interaction)
        {
            interaction.Loggers[LoggerType.Result].WriteLine(WriteStyle.Fixed, this.generalHelp);
            interaction.Loggers[LoggerType.Result].WriteLine();

            Table table = Table.Create(1, 1, 2);

            table.AddRow(XTaskStrings.OverviewColumn1, XTaskStrings.OverviewColumn2, XTaskStrings.OverviewColumn3);
            foreach (var entry in registry.Tasks)
            {
                if (entry.Task.GetAttributes <HiddenAttribute>(inherit: true).Any())
                {
                    continue;
                }

                string[] aliases = entry.Aliases.ToArray();
                if (aliases.Length == 0)
                {
                    continue;
                }

                ITaskDocumentation docs = entry.Task as ITaskDocumentation;

                table.AddRow(
                    aliases[0],
                    aliases.Length == 1 ? String.Empty : String.Join(", ", aliases.Skip(1)),
                    docs == null || docs.Summary == null ? String.Empty : docs.Summary);
            }

            interaction.Loggers[LoggerType.Result].Write(table);

            return(ExitCode.Success);
        }
Beispiel #2
0
        /// <summary>
        /// Outputs usage if any help is provided
        /// </summary>
        public static void OutputUsage(this ITask task, ITaskInteraction interaction)
        {
            ITaskDocumentation documentation = task.GetService <ITaskDocumentation>();

            if (documentation == null)
            {
                interaction.Loggers[LoggerType.Result].WriteLine(WriteStyle.Fixed, XTaskStrings.HelpNone);
            }
            else
            {
                documentation.GetUsage(interaction);
            }
        }
Beispiel #3
0
        public void HelpOutputsUsage()
        {
            IArgumentProvider  arguments    = Substitute.For <IArgumentProvider>();
            ITaskRegistry      taskRegistry = Substitute.For <ITaskRegistry>();
            ITaskDocumentation docs         = Substitute.For <ITaskDocumentation>();
            ITask task = Substitute.For <ITask>();

            task.GetService <ITaskDocumentation>().Returns(docs);

            arguments.Command.Returns("HelpOutputsUsage");
            arguments.HelpRequested.Returns(true);
            taskRegistry["HelpOutputsUsage"].Returns(task);

            TaskExecution execution = Substitute.ForPartsOf <TaskExecution>(arguments, taskRegistry, null);

            execution.ExecuteTask();
            docs.Received(1).GetUsage(Arg.Any <ITaskInteraction>());
        }