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 } )); }
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))); } }
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 }) )); }