tweak engine docs to contain guide docs for isotime
remove docs page
This commit is contained in:
parent
1d4a8e7ba2
commit
d9b874f118
|
@ -235,6 +235,54 @@ documentation for more information on user variables.
|
||||||
|
|
||||||
# isotime Function Format Reference
|
# isotime Function Format Reference
|
||||||
|
|
||||||
|
The way you format isotime in golang is a bit nontraditional compared to how
|
||||||
|
you may be used to formatting datetime strings.
|
||||||
|
|
||||||
|
Full docs and examples for the golang time formatting function can be found
|
||||||
|
[here](https://golang.org/pkg/time/#example_Time_Format)
|
||||||
|
|
||||||
|
However, the formatting basics are worth describing here. From the [golang docs](https://golang.org/pkg/time/#pkg-constants):
|
||||||
|
|
||||||
|
> These are predefined layouts for use in Time.Format and time.Parse. The
|
||||||
|
> reference time used in the layouts is the specific time:
|
||||||
|
>
|
||||||
|
> Mon Jan 2 15:04:05 MST 2006
|
||||||
|
>
|
||||||
|
> which is Unix time 1136239445. Since MST is GMT-0700, the reference time
|
||||||
|
> can be thought of as
|
||||||
|
>
|
||||||
|
> 01/02 03:04:05PM '06 -0700
|
||||||
|
>
|
||||||
|
> To define your own format, write down what the reference time would look like
|
||||||
|
> formatted your way; see the values of constants like ANSIC, StampMicro or
|
||||||
|
> Kitchen for examples. The model is to demonstrate what the reference time
|
||||||
|
> looks like so that the Format and Parse methods can apply the same
|
||||||
|
> transformation to a general time value.
|
||||||
|
|
||||||
|
So what does that look like in a Packer template function? Here's an example
|
||||||
|
of how you'd declare a variable using the isotime function.
|
||||||
|
|
||||||
|
```json
|
||||||
|
"variables": {
|
||||||
|
"myvar": "packer-{{isotime `2006-01-02 03:04:05`}}"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
You can try and modify the following examples in a packer template or in
|
||||||
|
`packer console` to get an idea of how to set different timestamps:
|
||||||
|
|
||||||
|
| Input | Output |
|
||||||
|
| ------------------------------------------ | ----------- |
|
||||||
|
| "packer-{{isotime `2006-01-02`}}" | "packer-2021-05-17 11:40:16" |
|
||||||
|
| "packer-{{isotime `Jan-_2-15:04:05.000`}}" | "packer-May-17-23:40:16.786" |
|
||||||
|
| "packer-{{isotime `3:04PM`}}" | "packer-11:40PM" |
|
||||||
|
| "{{ isotime }} | "June 7, 7:22:43pm 2014" |
|
||||||
|
| "{{isotime `2006-01-02`}}" | "2014-06-07" |
|
||||||
|
| "{{isotime `Mon 1504`}}" | "Sat 1922" |
|
||||||
|
| "{{isotime `02-Jan-06 03\_04\_05`}}" | "07-Jun-2014 07\_22\_43" |
|
||||||
|
| "{{isotime `Hour15Year200603`}}" | "Hour19Year201407" |
|
||||||
|
|
||||||
|
|
||||||
Formatting for the function `isotime` uses the magic reference date **Mon Jan 2
|
Formatting for the function `isotime` uses the magic reference date **Mon Jan 2
|
||||||
15:04:05 -0700 MST 2006**, which breaks down to the following:
|
15:04:05 -0700 MST 2006**, which breaks down to the following:
|
||||||
|
|
||||||
|
@ -278,47 +326,9 @@ Formatting for the function `isotime` uses the magic reference date **Mon Jan 2
|
||||||
|
|
||||||
_The values in parentheses are the abbreviated, or 24-hour clock values_
|
_The values in parentheses are the abbreviated, or 24-hour clock values_
|
||||||
|
|
||||||
For those unfamiliar with GO date/time formatting, here is a link to the
|
|
||||||
documentation: [go date/time formatting](https://programming.guide/go/format-parse-string-time-date-example.html)
|
|
||||||
|
|
||||||
Note that "-0700" is always formatted into "+0000" because `isotime` is always
|
Note that "-0700" is always formatted into "+0000" because `isotime` is always
|
||||||
UTC time.
|
UTC time.
|
||||||
|
|
||||||
Here are some example formatted time, using the above format options:
|
|
||||||
|
|
||||||
```liquid
|
|
||||||
isotime = June 7, 7:22:43pm 2014
|
|
||||||
|
|
||||||
{{isotime "2006-01-02"}} = 2014-06-07
|
|
||||||
{{isotime "Mon 1504"}} = Sat 1922
|
|
||||||
{{isotime "02-Jan-06 03\_04\_05"}} = 07-Jun-2014 07\_22\_43
|
|
||||||
{{isotime "Hour15Year200603"}} = Hour19Year201407
|
|
||||||
```
|
|
||||||
|
|
||||||
Please note that double quote characters need escaping inside of templates (in
|
|
||||||
this case, on the `ami_name` value):
|
|
||||||
|
|
||||||
```json
|
|
||||||
{
|
|
||||||
"builders": [
|
|
||||||
{
|
|
||||||
"type": "amazon-ebs",
|
|
||||||
"access_key": "...",
|
|
||||||
"secret_key": "...",
|
|
||||||
"region": "us-east-1",
|
|
||||||
"source_ami": "ami-fce3c696",
|
|
||||||
"instance_type": "t2.micro",
|
|
||||||
"ssh_username": "ubuntu",
|
|
||||||
"ami_name": "packer {{isotime \"2006-01-02\"}}"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
-> **Note:** See the [Amazon builder](/docs/builders/amazon)
|
|
||||||
documentation for more information on how to correctly configure the Amazon
|
|
||||||
builder in this example.
|
|
||||||
|
|
||||||
# split Function Format Reference
|
# split Function Format Reference
|
||||||
|
|
||||||
The function `split` takes an input string, a seperator string, and a numeric
|
The function `split` takes an input string, a seperator string, and a numeric
|
||||||
|
|
|
@ -1,84 +0,0 @@
|
||||||
---
|
|
||||||
page_title: Using the isotime template function - Guides
|
|
||||||
description: |-
|
|
||||||
It can be a bit confusing to figure out how to format your isotime using the
|
|
||||||
golang reference date string. Here is a small guide and some examples.
|
|
||||||
---
|
|
||||||
|
|
||||||
# Using the Isotime template function with a format string
|
|
||||||
|
|
||||||
The way you format isotime in golang is a bit nontraditional compared to how
|
|
||||||
you may be used to formatting datetime strings.
|
|
||||||
|
|
||||||
Full docs and examples for the golang time formatting function can be found
|
|
||||||
[here](https://golang.org/pkg/time/#example_Time_Format)
|
|
||||||
|
|
||||||
However, the formatting basics are worth describing here. From the [golang docs](https://golang.org/pkg/time/#pkg-constants):
|
|
||||||
|
|
||||||
> These are predefined layouts for use in Time.Format and time.Parse. The
|
|
||||||
> reference time used in the layouts is the specific time:
|
|
||||||
>
|
|
||||||
> Mon Jan 2 15:04:05 MST 2006
|
|
||||||
>
|
|
||||||
> which is Unix time 1136239445. Since MST is GMT-0700, the reference time
|
|
||||||
> can be thought of as
|
|
||||||
>
|
|
||||||
> 01/02 03:04:05PM '06 -0700
|
|
||||||
>
|
|
||||||
> To define your own format, write down what the reference time would look like
|
|
||||||
> formatted your way; see the values of constants like ANSIC, StampMicro or
|
|
||||||
> Kitchen for examples. The model is to demonstrate what the reference time
|
|
||||||
> looks like so that the Format and Parse methods can apply the same
|
|
||||||
> transformation to a general time value.
|
|
||||||
|
|
||||||
So what does that look like in a Packer template function?
|
|
||||||
|
|
||||||
```json
|
|
||||||
{
|
|
||||||
"variables": {
|
|
||||||
"myvar": "packer-{{isotime \"2006-01-02 03:04:05\"}}"
|
|
||||||
},
|
|
||||||
"builders": [
|
|
||||||
{
|
|
||||||
"type": "null",
|
|
||||||
"communicator": "none"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"provisioners": [
|
|
||||||
{
|
|
||||||
"type": "shell-local",
|
|
||||||
"inline": ["echo {{ user `myvar`}}"]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
You can switch out the variables section above with the following examples to
|
|
||||||
get different timestamps:
|
|
||||||
|
|
||||||
Date only, not time:
|
|
||||||
|
|
||||||
```json
|
|
||||||
"variables":
|
|
||||||
{
|
|
||||||
"myvar": "packer-{{isotime \"2006-01-02\"}}"
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
A timestamp down to the millisecond:
|
|
||||||
|
|
||||||
```json
|
|
||||||
"variables":
|
|
||||||
{
|
|
||||||
"myvar": "packer-{{isotime \"Jan-_2-15:04:05.000\"}}"
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
Or just the time as it would appear on a digital clock:
|
|
||||||
|
|
||||||
```json
|
|
||||||
"variables":
|
|
||||||
{
|
|
||||||
"myvar": "packer-{{isotime \"3:04PM\"}}"
|
|
||||||
}
|
|
||||||
```
|
|
|
@ -52,10 +52,6 @@
|
||||||
"title": "Overview",
|
"title": "Overview",
|
||||||
"path": "workflow-tips-and-tricks"
|
"path": "workflow-tips-and-tricks"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"title": "Isotime Template Function",
|
|
||||||
"path": "workflow-tips-and-tricks/isotime-template-function"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"title": "Use jq to strip comments from a Packer template",
|
"title": "Use jq to strip comments from a Packer template",
|
||||||
"path": "workflow-tips-and-tricks/use-packer-with-comment"
|
"path": "workflow-tips-and-tricks/use-packer-with-comment"
|
||||||
|
|
Loading…
Reference in New Issue