Exemplo n.º 1
0
        protected override int DoExecute(ITaskContextInternal context)
        {
            string program = ExecutablePath;

            if (string.IsNullOrEmpty(program))
            {
                program = context.Properties.GetDotnetExecutable();
            }

            if (string.IsNullOrEmpty(program))
            {
                context.Fail("Dotnet executable not set!", -1);
                return(-1);
            }

            IRunProgramTask task = context.Tasks().RunProgramTask(program);

            if (NoOutputLog)
            {
                task.DoNotLogOutput();
            }

            if (DoNotLog)
            {
                task.NoLog();
            }

            BeforeExecute(context);
            var argumentsFlat = ValidateAndGetArgumentsFlat();

            task
            .WithArguments(Command);

            foreach (var arg in argumentsFlat)
            {
                task.WithArguments(arg.arg, arg.maskArg);
            }

            task
            .WorkingFolder(ExecuteWorkingFolder)
            .CaptureErrorOutput()
            .CaptureOutput()
            .ExecuteVoid(context);

            return(0);
        }