implement packer_version variable in hcl
This commit is contained in:
parent
2cdc052d7c
commit
09c6d2880f
|
@ -9,6 +9,7 @@ import (
|
||||||
"github.com/hashicorp/hcl/v2"
|
"github.com/hashicorp/hcl/v2"
|
||||||
"github.com/hashicorp/hcl/v2/hclsyntax"
|
"github.com/hashicorp/hcl/v2/hclsyntax"
|
||||||
"github.com/hashicorp/packer/packer"
|
"github.com/hashicorp/packer/packer"
|
||||||
|
"github.com/hashicorp/packer/version"
|
||||||
"github.com/zclconf/go-cty/cty"
|
"github.com/zclconf/go-cty/cty"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -60,6 +61,7 @@ const (
|
||||||
pathVariablesAccessor = "path"
|
pathVariablesAccessor = "path"
|
||||||
sourcesAccessor = "source"
|
sourcesAccessor = "source"
|
||||||
buildAccessor = "build"
|
buildAccessor = "build"
|
||||||
|
packerAccessor = "packer"
|
||||||
)
|
)
|
||||||
|
|
||||||
// EvalContext returns the *hcl.EvalContext that will be passed to an hcl
|
// EvalContext returns the *hcl.EvalContext that will be passed to an hcl
|
||||||
|
@ -78,6 +80,9 @@ func (cfg *PackerConfig) EvalContext(variables map[string]cty.Value) *hcl.EvalCo
|
||||||
"name": cty.UnknownVal(cty.String),
|
"name": cty.UnknownVal(cty.String),
|
||||||
}),
|
}),
|
||||||
buildAccessor: cty.UnknownVal(cty.EmptyObject),
|
buildAccessor: cty.UnknownVal(cty.EmptyObject),
|
||||||
|
packerAccessor: cty.ObjectVal(map[string]cty.Value{
|
||||||
|
"version": cty.StringVal(version.FormattedVersion()),
|
||||||
|
}),
|
||||||
pathVariablesAccessor: cty.ObjectVal(map[string]cty.Value{
|
pathVariablesAccessor: cty.ObjectVal(map[string]cty.Value{
|
||||||
"cwd": cty.StringVal(strings.ReplaceAll(cfg.Cwd, `\`, `/`)),
|
"cwd": cty.StringVal(strings.ReplaceAll(cfg.Cwd, `\`, `/`)),
|
||||||
"root": cty.StringVal(strings.ReplaceAll(cfg.Basedir, `\`, `/`)),
|
"root": cty.StringVal(strings.ReplaceAll(cfg.Basedir, `\`, `/`)),
|
||||||
|
|
|
@ -13,7 +13,6 @@ description: |-
|
||||||
|
|
||||||
# Build Variables
|
# Build Variables
|
||||||
|
|
||||||
|
|
||||||
Build variables will allow you to access connection information and basic instance state information for a builder.
|
Build variables will allow you to access connection information and basic instance state information for a builder.
|
||||||
All special build variables are stored in the `build` variable:
|
All special build variables are stored in the `build` variable:
|
||||||
|
|
||||||
|
@ -72,3 +71,48 @@ For builder-specific builder variables, please also refer to the builder docs:
|
||||||
|
|
||||||
The HCL2 Special Build Variables is in beta; please report any issues or requests on the Packer
|
The HCL2 Special Build Variables is in beta; please report any issues or requests on the Packer
|
||||||
issue tracker on GitHub.
|
issue tracker on GitHub.
|
||||||
|
|
||||||
|
|
||||||
|
# Packer Version
|
||||||
|
|
||||||
|
This variable is set to the Packer version currently running.
|
||||||
|
|
||||||
|
```hcl
|
||||||
|
source "null" "first-example" {
|
||||||
|
communicator = "none"
|
||||||
|
}
|
||||||
|
|
||||||
|
build {
|
||||||
|
sources = ["null.first-example"]
|
||||||
|
|
||||||
|
provisioner "shell-local" {
|
||||||
|
inline = ["echo packer_version is '${packer.version}'"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
If you are running a development version of Packer, the version variable will
|
||||||
|
contain the released version number, dev flag, and current commit.
|
||||||
|
|
||||||
|
```shell-session
|
||||||
|
PACKER_LOG=0 packer build packer_version_demo.pkr.hcl
|
||||||
|
null.first-example: output will be in this color.
|
||||||
|
|
||||||
|
==> null.first-example: Running local shell script: /var/folders/8t/0yb5q0_x6mb2jldqq_vjn3lr0000gn/T/packer-shell083160352
|
||||||
|
null.first-example: packer_version is 1.6.5-dev (a69392129+CHANGES)
|
||||||
|
```
|
||||||
|
|
||||||
|
If you are running a released version of Packer, the version variable will
|
||||||
|
contain the released version number only:
|
||||||
|
|
||||||
|
```shell-session
|
||||||
|
PACKER_LOG=0 packer build packer_version_demo.pkr.hcl
|
||||||
|
null.first-example: output will be in this color.
|
||||||
|
|
||||||
|
==> null.first-example: Running local shell script: /var/folders/8t/0yb5q0_x6mb2jldqq_vjn3lr0000gn/T/packer-shell718995312
|
||||||
|
null.first-example: packer_version is 1.6.5
|
||||||
|
```
|
||||||
|
|
||||||
|
Make sure to wrap your variable in single quotes in order to escape the
|
||||||
|
string that is returned; if you are running a dev version of packer the
|
||||||
|
parenthesis may through off your shell escaping otherwise.
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
---
|
||||||
|
layout: docs
|
||||||
|
page_title: Contextual - Functions - Configuration Language
|
||||||
|
sidebar_title: Contextual Functions
|
||||||
|
description: Overview of available Contextual functions
|
||||||
|
---
|
|
@ -1,6 +0,0 @@
|
||||||
---
|
|
||||||
layout: docs
|
|
||||||
page_title: vault - Functions - Configuration Language
|
|
||||||
sidebar_title: vault Functions
|
|
||||||
description: Overview of available vault functions
|
|
||||||
---
|
|
Loading…
Reference in New Issue