add env_var_format to docs since we reference it in the examples

This commit is contained in:
Megan Marsh 2019-01-09 11:16:19 -08:00
parent 4581b3badb
commit 56725df3a2
2 changed files with 41 additions and 3 deletions

View File

@ -60,6 +60,14 @@ Optional parameters:
Packer injects some environmental variables by default into the
environment, as well, which are covered in the section below.
- `env_var_format` (string) - When we parse the environment_vars that you
provide, this gives us a string template to use in order to make sure that
we are setting the environment vars correctly. By default on Windows hosts
this format is `set %s=%s && ` and on Unix, it is `%s='%s' `. You probably
won't need to change this format, but you can see usage examples for where
it is necessary below.
- `execute_command` (array of strings) - The command used to execute the
script. By default this is `["/bin/sh", "-c", "{{.Vars}}", "{{.Script}}"]`
on unix and `["cmd", "/c", "{{.Vars}}", "{{.Script}}"]` on windows. This is
@ -242,8 +250,10 @@ are cleaned up.
For a shell script, that means the script **must** exit with a zero code. You
*must* be extra careful to `exit 0` when necessary.
## Usage Examples:
### Windows Host
Example of running a .cmd file on windows:
{
@ -306,7 +316,8 @@ customizations: env\_var\_format, tempfile\_extension, and execute\_command
"inline": ["write-output $env:SHELLLOCALTEST"]
}
Example of running a bash script on linux:
### Unix Host
Example of running a bash script on unix:
{
"type": "shell-local",
@ -314,7 +325,7 @@ Example of running a bash script on linux:
"scripts": ["./scripts/example_bash.sh"]
}
Example of running a bash "inline" on linux:
Example of running a bash "inline" on unix:
{
"type": "shell-local",
@ -322,3 +333,22 @@ Example of running a bash "inline" on linux:
"inline": ["echo hello",
"echo $PROVISIONERTEST"]
}
Example of running a python script on unix:
```
{
"type": "shell-local",
"script": "hello.py",
"environment_vars": ["HELLO_USER=packeruser"],
"execute_command": ["/bin/sh", "-c", "{{.Vars}} /usr/local/bin/python {{.Script}}"]
}
```
Where "hello.py" contains:
```
import os
print('Hello, %s!' % os.getenv("HELLO_USER"))
```

View File

@ -74,6 +74,13 @@ Optional parameters:
this as an environment variable. For example:
`"environment_vars": "WINRMPASS={{.WinRMPassword}}"`
- `env_var_format` (string) - When we parse the environment_vars that you
provide, this gives us a string template to use in order to make sure that
we are setting the environment vars correctly. By default on Windows hosts
this format is `set %s=%s && ` and on Unix, it is `%s='%s' `. You probably
won't need to change this format, but you can see usage examples for where
it is necessary below.
- `execute_command` (array of strings) - The command used to execute the
script. By default this is `["/bin/sh", "-c", "{{.Vars}}", "{{.Script}}"]`
on unix and `["cmd", "/c", "{{.Vars}}", "{{.Script}}"]` on windows. This is
@ -270,6 +277,7 @@ env\_var\_format and execute\_command
"environment_vars": ["SHELLLOCALTEST=ShellTest4"],
"execute_command": ["powershell.exe", "{{.Vars}} {{.Script}}"],
"env_var_format": "$env:%s=\"%s\"; ",
"script": "./scripts/example_ps.ps1"
}
Example of running a powershell script on windows as "inline": Required
@ -290,7 +298,7 @@ Example of running a bash script on unix:
{
"type": "shell-local",
"environment_vars": ["PROVISIONERTEST=ProvisionerTest1"],
"scripts": ["./scripts/dummy_bash.sh"]
"scripts": ["./scripts/example_bash.sh"]
}
Example of running a bash "inline" on unix: