コード例 #1
0
        protected override ScriptExecution PrepareExecution(Script script, CalamariVariableDictionary variables,
                                                            Dictionary <string, string> environmentVars = null)
        {
            var workingDirectory  = Path.GetDirectoryName(script.File);
            var executable        = ScriptCSBootstrapper.FindExecutable();
            var configurationFile = ScriptCSBootstrapper.PrepareConfigurationFile(workingDirectory, variables);
            var bootstrapFile     = ScriptCSBootstrapper.PrepareBootstrapFile(script.File, configurationFile, workingDirectory);
            var arguments         = ScriptCSBootstrapper.FormatCommandArguments(bootstrapFile, script.Parameters);

            return(new ScriptExecution(
                       new CommandLineInvocation(executable, arguments, workingDirectory, environmentVars),
                       new[] { bootstrapFile, configurationFile }
                       ));
        }
コード例 #2
0
        public CommandResult Execute(string scriptFile, CalamariVariableDictionary variables, ICommandLineRunner commandLineRunner)
        {
            var workingDirectory = Path.GetDirectoryName(scriptFile);

            var executable        = ScriptCSBootstrapper.FindScriptCSExecutable();
            var configurationFile = ScriptCSBootstrapper.PrepareConfigurationFile(workingDirectory, variables);
            var boostrapFile      = ScriptCSBootstrapper.PrepareBootstrapFile(scriptFile, configurationFile, workingDirectory);
            var arguments         = ScriptCSBootstrapper.FormatCommandArguments(boostrapFile);

            using (new TemporaryFile(configurationFile))
                using (new TemporaryFile(boostrapFile))
                {
                    return(commandLineRunner.Execute(new CommandLineInvocation(executable, arguments, workingDirectory)));
                }
        }
コード例 #3
0
        protected override IEnumerable <ScriptExecution> PrepareExecution(Script script, IVariables variables,
                                                                          Dictionary <string, string> environmentVars = null)
        {
            var workingDirectory  = Path.GetDirectoryName(script.File);
            var executable        = ScriptCSBootstrapper.FindExecutable();
            var configurationFile = ScriptCSBootstrapper.PrepareConfigurationFile(workingDirectory, variables);

            var(bootstrapFile, otherTemporaryFiles) = ScriptCSBootstrapper.PrepareBootstrapFile(script.File, configurationFile, workingDirectory, variables);
            var arguments = ScriptCSBootstrapper.FormatCommandArguments(bootstrapFile, script.Parameters);

            yield return(new ScriptExecution(
                             new CommandLineInvocation(executable, arguments)
            {
                WorkingDirectory = workingDirectory,
                EnvironmentVars = environmentVars
            },
                             otherTemporaryFiles.Concat(new[] { bootstrapFile, configurationFile })
                             ));
        }