handle minor shell-local PR suggestions and corrections

This commit is contained in:
Megan Marsh 2018-05-21 14:56:44 -07:00
parent 1fdf763d0f
commit 969201a2d4
4 changed files with 12 additions and 12 deletions

View File

@ -153,7 +153,11 @@ func Validate(config *Config) error {
}
if config.UseLinuxPathing {
for index, script := range config.Scripts {
converted, err := ConvertToLinuxPath(script)
scriptAbsPath, err := filepath.Abs(script)
if err != nil {
return fmt.Errorf("Error converting %s to absolute path: %s", script, err.Error())
}
converted, err := ConvertToLinuxPath(scriptAbsPath)
if err != nil {
return err
}
@ -202,12 +206,8 @@ func Validate(config *Config) error {
}
// C:/path/to/your/file becomes /mnt/c/path/to/your/file
func ConvertToLinuxPath(winPath string) (string, error) {
func ConvertToLinuxPath(winAbsPath string) (string, error) {
// get absolute path of script, and morph it into the bash path
winAbsPath, err := filepath.Abs(winPath)
if err != nil {
return "", fmt.Errorf("Error converting %s to absolute path: %s", winPath, err.Error())
}
winAbsPath = strings.Replace(winAbsPath, "\\", "/", -1)
splitPath := strings.SplitN(winAbsPath, ":/", 2)
winBashPath := fmt.Sprintf("/mnt/%s/%s", strings.ToLower(splitPath[0]), splitPath[1])

View File

@ -32,11 +32,12 @@ func Run(ui packer.Ui, config *Config) (bool, error) {
}
scripts = append(scripts, tempScriptFileName)
defer os.Remove(tempScriptFileName)
// figure out what extension the file should have, and rename it.
if config.TempfileExtension != "" {
os.Rename(tempScriptFileName, fmt.Sprintf("%s.%s", tempScriptFileName, config.TempfileExtension))
tempScriptFileName = fmt.Sprintf("%s.%s", tempScriptFileName, config.TempfileExtension)
}
defer os.Remove(tempScriptFileName)
}
// Create environment variables to set before executing the command
@ -83,7 +84,7 @@ func Run(ui packer.Ui, config *Config) (bool, error) {
}
func createInlineScriptFile(config *Config) (string, error) {
tf, err := ioutil.TempFile(os.TempDir(), "packer-shell")
tf, err := ioutil.TempFile("", "packer-shell")
if err != nil {
return "", fmt.Errorf("Error preparing shell script: %s", err)
}
@ -105,8 +106,7 @@ func createInlineScriptFile(config *Config) (string, error) {
return "", fmt.Errorf("Error preparing shell script: %s", err)
}
tf.Close()
err = os.Chmod(tf.Name(), 0555)
err = os.Chmod(tf.Name(), 0700)
if err != nil {
log.Printf("[ERROR] (shell-local): error modifying permissions of temp script file: %s", err.Error())
}

View File

@ -73,7 +73,7 @@ Optional parameters:
choose to try to use shell-local for Powershell or other Windows commands,
the environment variables will not be set properly for your environment.
For backwards compatibility, `execute_command` will accept a string insetad
For backwards compatibility, `execute_command` will accept a string instead
of an array of strings. If a single string or an array of strings with only
one element is provided, Packer will replicate past behavior by appending
your `execute_command` to the array of strings `["sh", "-c"]`. For example,

View File

@ -89,7 +89,7 @@ Optional parameters:
these commands are not officially supported and things like environment
variables may not work if you use a different shell than the default.
For backwards compatability, you may also use {{.Command}}, but it is
For backwards compatibility, you may also use {{.Command}}, but it is
decoded the same way as {{.Script}}. We recommend using {{.Script}} for the
sake of clarity, as even when you set only a single `command` to run,
Packer writes it to a temporary file and then runs it as a script.