public CommandResult Execute(Script script, CalamariVariableDictionary variables, ICommandLineRunner commandLineRunner) { var workingDirectory = Path.GetDirectoryName(script.File); var configurationFile = BashScriptBootstrapper.PrepareConfigurationFile(workingDirectory, variables); var boostrapFile = BashScriptBootstrapper.PrepareBootstrapFile(script, configurationFile, workingDirectory); using (new TemporaryFile(configurationFile)) using (new TemporaryFile(boostrapFile)) { return(commandLineRunner.Execute(new CommandLineInvocation( BashScriptBootstrapper.FindBashExecutable(), BashScriptBootstrapper.FormatCommandArguments(boostrapFile), workingDirectory))); } }
protected override ScriptExecution PrepareExecution(Script script, CalamariVariableDictionary variables, StringDictionary environmentVars = null) { var workingDirectory = Path.GetDirectoryName(script.File); var configurationFile = BashScriptBootstrapper.PrepareConfigurationFile(workingDirectory, variables); var bootstrapFile = BashScriptBootstrapper.PrepareBootstrapFile(script, configurationFile, workingDirectory); return(new ScriptExecution( new CommandLineInvocation( BashScriptBootstrapper.FindBashExecutable(), BashScriptBootstrapper.FormatCommandArguments(bootstrapFile), workingDirectory, environmentVars), new[] { bootstrapFile, configurationFile } )); }
protected override IEnumerable <ScriptExecution> PrepareExecution(Script script, CalamariVariableDictionary variables, Dictionary <string, string> environmentVars = null) { var workingDirectory = Path.GetDirectoryName(script.File); var configurationFile = BashScriptBootstrapper.PrepareConfigurationFile(workingDirectory, variables); var(bootstrapFile, otherTemporaryFiles) = BashScriptBootstrapper.PrepareBootstrapFile(script, configurationFile, workingDirectory, variables); yield return(new ScriptExecution( new CommandLineInvocation( BashScriptBootstrapper.FindBashExecutable(), BashScriptBootstrapper.FormatCommandArguments(bootstrapFile), workingDirectory, environmentVars), otherTemporaryFiles.Concat(new[] { bootstrapFile, configurationFile }) )); }