Commit Graph

132 Commits

Author SHA1 Message Date
Adrien Delorme c4f3dccc14 rename interpolation context from ctx to ictx and contexts to ctx to avoid conflicts 2019-04-03 15:56:15 +02:00
Megan Marsh 12fc1fa751 default_keep_input_artifact 2019-04-02 16:51:58 -07:00
Megan Marsh bf0d7b3620 make it work and add tests 2019-03-13 10:49:13 -07:00
Brendan Devenney 328cbf4e42
Merge branch 'master' into feature/7322 2019-02-27 19:29:18 +00:00
Brendan Devenney 4d2a5fb9a2
Implement template marshalling logic
Signed-off-by: Brendan Devenney <brendan@devenney.io>
2019-02-23 22:41:07 +00:00
Brendan Devenney afba444373
Refactor rawTemplate to better align with real raw template structure
Signed-off-by: Brendan Devenney <brendan@devenney.io>
2019-02-23 21:42:27 +00:00
Brendan Devenney 610eecfc99
Track sensitive variable keys to support JSON template writing
Signed-off-by: Brendan Devenney <brendan@devenney.io>
2019-02-23 04:52:03 +00:00
Brendan Devenney d8793e3f85
Store comments in the Template structure
Signed-off-by: Brendan Devenney <brendan@devenney.io>
2019-02-23 04:37:08 +00:00
Adrien Delorme 944c00900e parse_test.go: still display file name in case of error 2019-02-20 12:54:57 +01:00
Adrien Delorme c12e9eea3a template/parse_test.go: name the post-processors to their type as it's now the default 2019-02-20 12:49:21 +01:00
Adrien Delorme b6b3cc901c template/parse_test.go: use diff for easier eye debug 2019-02-20 12:48:52 +01:00
Adrien Delorme 5eccbc702d name a post-processor to it's type if it is not named 2019-02-20 12:38:30 +01:00
Adrien Delorme 4bf3cd44fc allow to skip a post processor 2019-01-10 15:44:34 +01:00
Adrien Delorme b7222d1f56 Add tmp package that offers Dir & File funcs
this regroups the calls of tmp func calls into one package.
the tmp pkg allows to store tmp files under a common directory for easier managment

Squashed commit of the following:
commit 74b674c01560c6b547e9cab5e8afb486f0fe7d6c
Merge: fc94b5714 66001525d
Author: Matthew Patton <mpatton@enquizit.com>
Date:   Fri Nov 2 02:02:38 2018 -0400

    Merge branch 'remove_TMPDIR_docs' of github.com:tb3088/packer into remove_TMPDIR_docs

commit fc94b571428447aaf2e5171967c95cdf9e5c73ff
Author: Matthew Patton <mpatton@enquizit.com>
Date:   Fri Nov 2 01:42:38 2018 -0400

    update tests to honor configured temporary directory

commit 5a562359f4937af506607dd96ed1c46426093f52
Author: Matthew Patton <mpatton@enquizit.com>
Date:   Thu Nov 1 18:52:38 2018 -0400

    sync straggler to refactor. implement tests at packer/configfile instead of buried in docker.

commit 9d5a4a0935bfd049e2f8f50ad73e4455b42c9410
Author: Matthew Patton <mpatton@enquizit.com>
Date:   Thu Nov 1 15:39:46 2018 -0400

    insert URL to GoLang API for os.TempDir()

commit fbae4c2e051898aecd8705e9d8a20353430ede23
Author: Matthew Patton <mpatton@enquizit.com>
Date:   Thu Nov 1 07:41:29 2018 -0400

    revise documentation to match code

commit 3590fae8bd0afa92a161a49ed794ee32e357d583
Author: Matthew Patton <mpatton@enquizit.com>
Date:   Thu Nov 1 07:21:59 2018 -0400

    refacter config_file. replace all hard-coded os.TempDir with wrapper

commit d5c5306a97b648ded06a8eb76ce728f07c9924f0
Author: Matthew Patton <mpatton@enquizit.com>
Date:   Wed Oct 31 20:11:36 2018 -0400

    close massive file overwrite hole with TempDir

commit 0a72297da86089fbd07e4f7d9472a92fa4d1c733
Author: Matthew Patton <mpatton@enquizit.com>
Date:   Wed Oct 31 01:06:00 2018 -0400

    adjust var declaration scope

commit 20f68228b6c372d984ea5b055cfc8bda9b110ac5
Author: Matthew Patton <mpatton@enquizit.com>
Date:   Wed Oct 31 00:54:35 2018 -0400

    use mktemp() equivalent to create temporary directory

commit c73ebe3d8321664a2685a0baa8e441dd895b0db4
Author: Matthew Patton <mpatton@enquizit.com>
Date:   Tue Oct 30 20:40:58 2018 -0400

    remove extraneous variable declaration, fix FOR loop

commit 63549b8bd745a0090b15ed0b0ebf644162db27db
Author: Matthew Patton <mpatton@enquizit.com>
Date:   Tue Oct 30 19:30:44 2018 -0400

    match styistic convension with rest of docs

commit 976101074942db36f10d3a686d6d29ddb7c01926
Author: Matthew Patton <mpatton@enquizit.com>
Date:   Tue Oct 30 19:08:39 2018 -0400

    revert dangling config file change

commit 95159afbc05eac96ed11c3183af5fb0abe2f2d5c
Author: Matthew Patton <matthew.patton@itgfirm.com>
Date:   Fri Dec 29 23:53:43 2017 -0500

    replace invalid TMPDIR variable wth PACKER_TMP_DIR.
    update ConfigTmpDir() to try common temporary paths first and
    only write to configDir() as a last resort.

commit 66001525d72de56a4cf9339b900c46f59bc6e91a
Author: Matthew Patton <mpatton@enquizit.com>
Date:   Fri Nov 2 01:42:38 2018 -0400

    update tests to honor configured temporary directory

commit e9b6adefeae8c65eb8aa47fef38cbf0aa424338c
Author: Matthew Patton <mpatton@enquizit.com>
Date:   Thu Nov 1 18:52:38 2018 -0400

    sync straggler to refactor. implement tests at packer/configfile instead of buried in docker.

commit 852113ed076e2d14e5dca6815ea680da1e2896bb
Author: Matthew Patton <mpatton@enquizit.com>
Date:   Thu Nov 1 15:39:46 2018 -0400

    insert URL to GoLang API for os.TempDir()

commit 54add38d1d1c6e283cd444b367ed8bd49a5f3699
Author: Matthew Patton <mpatton@enquizit.com>
Date:   Thu Nov 1 07:41:29 2018 -0400

    revise documentation to match code

commit 6b5b8f6d4edad0e187ca13d64ac4118f34eee643
Author: Matthew Patton <mpatton@enquizit.com>
Date:   Thu Nov 1 07:21:59 2018 -0400

    refacter config_file. replace all hard-coded os.TempDir with wrapper

commit c22092c601c33484327674f322c7379fa41506d7
Author: Matthew Patton <mpatton@enquizit.com>
Date:   Wed Oct 31 20:11:36 2018 -0400

    close massive file overwrite hole with TempDir

commit 7a730450916bf8e5dbc2a741ec233a49466ab7cc
Author: Matthew Patton <mpatton@enquizit.com>
Date:   Wed Oct 31 01:06:00 2018 -0400

    adjust var declaration scope

commit 0f2933adb6f6922dfeab78a95371a444ec8918ab
Author: Matthew Patton <mpatton@enquizit.com>
Date:   Wed Oct 31 00:54:35 2018 -0400

    use mktemp() equivalent to create temporary directory

commit d74839ede05dacf712b55a7bb48aec19fe6b007f
Author: Matthew Patton <mpatton@enquizit.com>
Date:   Tue Oct 30 20:40:58 2018 -0400

    remove extraneous variable declaration, fix FOR loop

commit eb65416619437e4a3dec90277770803dd5b2281c
Author: Matthew Patton <mpatton@enquizit.com>
Date:   Tue Oct 30 19:30:44 2018 -0400

    match styistic convension with rest of docs

commit acaa2b31ed463219c4ef099f351eec72406e2989
Author: Matthew Patton <mpatton@enquizit.com>
Date:   Tue Oct 30 19:08:39 2018 -0400

    revert dangling config file change

commit e573fde668dcb418561e61535c1d68b2888f5b0f
Author: Matthew Patton <matthew.patton@itgfirm.com>
Date:   Fri Dec 29 23:53:43 2017 -0500

    replace invalid TMPDIR variable wth PACKER_TMP_DIR.
    update ConfigTmpDir() to try common temporary paths first and
    only write to configDir() as a last resort.

commit 39a9874afc9dea71b36753375fb7feb61ffecf69
Merge: 8a413cfe8 3315812c2
Author: Matthew Patton <mpatton@enquizit.com>
Date:   Tue Oct 30 18:19:26 2018 -0400

    Merge branch 'master' of https://github.com/hashicorp/packer into prestine

commit 8a413cfe83b0a70dbd99c32d936334ca5788ca9b
Merge: e07491de5 4e14710a6
Author: Matthew Patton <mpatton@enquizit.com>
Date:   Mon Oct 1 20:18:10 2018 -0400

    Merge remote-tracking branch 'upstream/master' into prestine

commit e07491de59cead0b337a7f57f4a6c625e1f560ab
Merge: 42610a35d a1fa35dff
Author: Matthew Patton <mpatton@enquizit.com>
Date:   Tue Aug 21 13:26:19 2018 -0400

    Merge remote-tracking branch 'upstream/master' into prestine

commit 42610a35d5ef65af8844a58ad70e2ec75262da6a
Merge: 5298142da 0d63cf7bc
Author: Matthew Patton <matthew.patton@itgfirm.com>
Date:   Tue Jun 19 22:45:05 2018 -0400

    Merge remote-tracking branch 'upstream/master' into prestine

commit 5298142da6da95354844f201deeeef3c599e48b2
Merge: 7bb110bc7 9d9736552
Author: Matthew Patton <mpatton@enquizit.com>
Date:   Mon Jun 11 15:10:09 2018 -0400

    Merge remote-tracking branch 'upstream/master' into prestine

commit 7bb110bc744c9797fcaec25a265d9b85a22d6d6b
Merge: a61c869ca 6189d66e7
Author: Matthew Patton <matthew.patton@itgfirm.com>
Date:   Wed May 9 23:41:22 2018 -0400

    Merge remote-tracking branch 'upstream/master' into prestine

commit a61c869ca7268acf0e3b1e1fa7a8ee7feea65984
Merge: 098101dd9 4be5f072c
Author: Matthew Patton <matthew.patton@itgfirm.com>
Date:   Fri May 4 10:13:04 2018 -0400

    Merge remote-tracking branch 'upstream/master' into prestine

commit 098101dd99f08b0ca110d33eff6904537c6d21de
Merge: fefaf0fa6 554b2b4a5
Author: Matthew Patton <matthew.patton@itgfirm.com>
Date:   Tue May 1 20:52:30 2018 -0400

    Merge branch 'EOL-handling' into prestine

Co-Authored-By: Matthew Patton <pattonme@yahoo.com>
2018-12-12 16:35:57 +01:00
Wheeler Law 4582a55680 Formatting 2018-11-05 12:30:41 -08:00
Wheeler Law 1fdce9dada Tests are passing 2018-11-05 12:30:41 -08:00
Wheeler Law de3bdec567 Working now 2018-11-05 12:30:41 -08:00
Wheeler Law 65c1b039cc Added a sed function. Not quite working yet 2018-11-05 12:30:41 -08:00
Adrien Delorme 379336d9b2 make template/parse_test.go invisible to windows 2018-10-16 19:02:10 +02:00
Megan Marsh 174098ba29 implement vault template function for kv engine; add docs 2018-08-28 13:58:56 -07:00
Megan Marsh dfaf624f4c add template function allowing user to read keys from vault
update dependencies
add minimal docs
2018-08-28 11:23:47 -07:00
Olivier Ceyral ee08365b02 Fix error message 2018-08-28 11:04:33 -07:00
Olivier Ceyral a906d1d630 Add consul template function 2018-08-28 11:04:33 -07:00
Megan Marsh 6356078d19 add a few more tests to split function 2018-08-24 15:27:14 -07:00
Megan Marsh 8fbce8c40c
Merge pull request #6357 from ladar/master
Added a 'split' function to parse template variables.
2018-08-24 15:18:36 -07:00
Megan Marsh 8a6441a7a5 add tests for SensitiveVars 2018-08-21 10:28:22 -07:00
Megan Marsh ff6a039d5b replace scrubconfig with packer.LogSecretFilter.Set
filter winrm password from logs
Add new root-level packer template option, sensitive-variables, to tell us what user variables to mark sensitive.
2018-08-20 15:35:55 -07:00
Ladar Levison 8fee49ab9f Added a 'split' function to parse template variables. 2018-06-08 00:41:57 -05:00
Krzysztof Wilczynski 7d80e37c14
Add new `packer_version` function.
Signed-off-by: Krzysztof Wilczynski <kw@linux.com>
2017-11-21 22:04:33 +01:00
Ben Root 5beca186d7 Unit test to verify that parsing fails on a certain kind of malformed JSON 2017-05-19 16:42:42 -04:00
Matthew Hooker 3fe1f20770
use json unmarshal instead of json decoder
this should let us catch json syntax errors.
2017-05-19 12:02:48 -07:00
Matthew Hooker 81522dced0
move packer to hashicorp 2017-04-04 13:39:01 -07:00
Matthew Hooker d1b20b3d9c
remove a bunch of dead code.
https://github.com/dominikh/go-tools/tree/master/cmd/unused
2017-03-28 20:36:20 -07:00
Matthew Hooker db49f10cad
update changelog 2017-02-03 23:15:18 -08:00
Matthew Hooker 5ea0eb0ec6
print time.Time with %v 2016-12-06 16:47:08 -08:00
Matthew Hooker d920b3fbf4 run gofmt 2016-11-01 14:08:04 -07:00
Jake Champlin aca4aed47c Display better error messages on json.SyntaxError
Better display an error message on an encounter of a json.SyntaxError.

Rolls back the file position, to read the entire file, then steps
through the file reading a single byte at a time, populating lines until
encountering the syntax error. Then relays the offending line as well as
the previous line in the file to the user, also placing a `^` that
points the the offending column of the decoder error.

```
➤  packer validate template.json
Failed to parse template: Error parsing JSON: invalid character '"' after object key:value pair
At line 9, column 8 (offset 121):
    8:       "name": "vbox"
    9:       "
```
2016-02-10 14:52:26 -05:00
Mark Peek 71ed8e4a38 Fix #2742: Include template line numbers on error 2015-10-25 12:28:06 -07:00
Mark Peek 5ef142c8bd Fixes #2777: isotime interpolation uses InitTime 2015-10-06 16:45:30 -07:00
Mitchell Hashimoto fd2d44c212 helper/config: copy buildname/buildtype properly 2015-06-30 10:42:55 -07:00
Mitchell Hashimoto 723b91ccf3 Merge pull request #2232 from mitchellh/f-build-name
core: add build_name and build_type functions
2015-06-15 09:42:22 -07:00
Mitchell Hashimoto d6f8ec9315 Merge pull request #2230 from mitchellh/f-json-comments
template: allow _ prefix to root level keys for comments [GH-2066]
2015-06-15 09:38:33 -07:00
Mitchell Hashimoto 1d94e0f8e3 template: abslute path for template path 2015-06-13 22:50:02 -07:00
Mitchell Hashimoto f1b3c8a7ae template/interpolate: build_name and build_type functions 2015-06-13 16:48:35 -04:00
Mitchell Hashimoto facbb6577d template: allow _ prefix to root level keys for comments [GH-2066] 2015-06-13 16:19:25 -04:00
James G. Kim d7c77895dc Add tests for only and except of post-processors 2015-06-05 12:26:33 +09:00
James G. Kim a5818b158f Fixes 'unknown configuration key' errors for 'only' and 'except' 2015-06-05 12:26:17 +09:00
Mitchell Hashimoto 579264bb5b command/push: interpolate 2015-05-29 15:35:55 -07:00
Mitchell Hashimoto 639e63fd7c packer: test for template path 2015-05-29 14:29:32 -07:00
Mitchell Hashimoto 31d6dcb656 template: template path is the directory 2015-05-29 14:06:17 -07:00
Mitchell Hashimoto 2b9e52e743 template: stores the path 2015-05-29 14:05:13 -07:00
Mitchell Hashimoto 2752e51e09 template/interpolate: add template_path 2015-05-29 13:55:59 -07:00
Mitchell Hashimoto 27e525e508 update CHANGELOG 2015-05-28 15:19:22 -07:00
Mitchell Hashimoto f8c877771d Merge branch 'f-packer-push-name' 2015-05-28 15:18:36 -07:00
Mitchell Hashimoto f5945eeb1b vmware/iso: new interpolation 2015-05-27 14:16:28 -07:00
Mitchell Hashimoto 034e4e676c amazon/*: use new interpolation functions 2015-05-27 11:47:45 -07:00
Mitchell Hashimoto becd6dacd7 template/interpolate: support custom functions 2015-05-27 11:10:09 -07:00
Mitchell Hashimoto 71932cccc9 template/interpolate: export RenderInterface 2015-05-27 10:10:58 -07:00
Mitchell Hashimoto 9d2e926808 template/interpolate: filter is case insensitive 2015-05-27 10:09:11 -07:00
Mitchell Hashimoto 41a6fe9fda template/interpolate: RenderMap to render a complex structure 2015-05-27 10:07:51 -07:00
Mitchell Hashimoto b9eea82a36 template: add tests for RawContents 2015-05-26 09:41:42 -07:00
Mitchell Hashimoto 2fb08be192 template: store Rawcontents 2015-05-26 09:38:02 -07:00
Mitchell Hashimoto b5f4ffa56c template: OnlyExcept skipping 2015-05-26 09:07:16 -07:00
Mitchell Hashimoto 3ebfe06ec8 packer: render build names 2015-05-23 16:12:32 -07:00
Mitchell Hashimoto 47b570a2d2 template/interpolate: flip disable to enableenv 2015-05-23 16:06:11 -07:00
Mitchell Hashimoto 97a48e35bb template: ParseFile 2015-05-23 15:44:54 -07:00
Mitchell Hashimoto 28dc1c2aed template: validate post-processor only/except 2015-05-21 15:42:12 -06:00
Mitchell Hashimoto 637fabc1c7 template: validate only/except 2015-05-21 15:39:32 -06:00
Mitchell Hashimoto 2f7e95cc46 template: Validate 2015-05-21 15:29:45 -06:00
Mitchell Hashimoto 2e4dd63912 template: parse push 2015-05-21 14:44:29 -06:00
Mitchell Hashimoto 43fbd26dc9 template: copy some description and min vesrion 2015-05-21 14:41:33 -06:00
Mitchell Hashimoto 839784b044 template: parse post-processors 2015-05-21 14:32:22 -06:00
Mitchell Hashimoto fbda5b119a template: variable parsing 2015-05-21 13:40:33 -06:00
Mitchell Hashimoto 4583ed6108 template: parse provisioners 2015-05-21 13:34:44 -06:00
Mitchell Hashimoto 95890003b7 template: builder parsing 2015-05-19 15:25:56 -06:00
Mitchell Hashimoto 1e745d9508 template/interpolate: user variables 2015-05-15 21:18:27 -07:00
Mitchell Hashimoto a4b5e08fe4 template/interpolate: upper/lower 2015-05-15 21:16:52 -07:00
Mitchell Hashimoto 7659a91445 template/interpolate: timestamp 2015-05-15 21:14:41 -07:00
Mitchell Hashimoto b84ec8da4b template/interpolate: isotime 2015-05-15 21:12:54 -07:00
Mitchell Hashimoto 5d205ec1fc template/interpolate: wd 2015-05-15 21:10:12 -07:00
Mitchell Hashimoto 125369d102 template/interpolate: can specify template data 2015-05-15 21:08:46 -07:00
Mitchell Hashimoto ff6573ce10 template/interpolate: basic + some funcs 2015-05-15 21:05:47 -07:00