Ejemplo n.º 1
0
        public override ITascResult Execute(TascContext context)
        {
            ITascResult result = TascResult.Pass;

            try
            {
                var formattedParams =
                    (CommandParams != null)
                    ? string.Join(" ", CommandParams)
                    : "";

                if (RunWindowed)
                {
                    var processStartInfo = new ProcessStartInfo(Command, formattedParams)
                    {
                        CreateNoWindow = false
                    };

                    using (var process = new Process())
                    {
                        process.StartInfo                  = processStartInfo;
                        process.EnableRaisingEvents        = false;
                        process.StartInfo.WorkingDirectory = TascProject.Instance.Root;
                        process.Start();
                    }
                }
                else
                {
                    var processStartInfo = new ProcessStartInfo(Command, formattedParams)
                    {
                        CreateNoWindow         = true,
                        UseShellExecute        = false,
                        RedirectStandardOutput = true,
                        RedirectStandardError  = true
                    };

                    using (var process = new Process())
                    {
                        process.StartInfo                  = processStartInfo;
                        process.EnableRaisingEvents        = false;
                        process.StartInfo.WorkingDirectory = TascProject.Instance.Root;
                        process.Start();

                        // Handle Standard Output
                        process.OutputDataReceived += (sender, args) => Console.WriteLine(args.Data);
                        process.ErrorDataReceived  += (sender, args) => Console.WriteLine(args.Data);
                        process.BeginOutputReadLine();
                        process.BeginErrorReadLine();

                        process.WaitForExit();
                    }
                }
            }
            catch (Exception)
            {
                result = TascResult.Fail;
            }

            return(result);
        }
Ejemplo n.º 2
0
        public ITascResult Execute()
        {
            var context = new TascContext(this);

            ApplyProjectSettingsToExecutionContext(this, new GenerateExecutionContextArgs(context));

            ITascResult result = null;

            foreach (var tasc in _tascs)
            {
                try
                {
                    result = tasc.Execute(context);
                }
                finally
                {
                    tasc.Cleanup();
                }
            }
            return(result);
        }