packer-cn/packer
Adrien Delorme 40947c2bf6
HCL2: generate hcl tags with go-cty tags too (#9306)
This will allow to generate the config files:

```go
package main

import (
	"fmt"

	"github.com/hashicorp/hcl/v2/gohcl"
	"github.com/hashicorp/hcl/v2/hclwrite"
	"github.com/hashicorp/packer/builder/alicloud/ecs"
)

func main() {
	name := "name"
	app := ecs.FlatConfig{
		AlicloudImageName: &name,
		ECSSystemDiskMapping: &ecs.FlatAlicloudDiskDevice{
			DiskName: &name,
		},
	}

	f := hclwrite.NewEmptyFile()
	block := gohcl.EncodeAsBlock(&app, `source "something" "something"`)
	f.Body().AppendBlock(block)
	fmt.Printf("%s", f.Bytes())
}

```

Will output:

```
source "something" "something" {
  packer_user_variables      = null
  packer_sensitive_variables = null
  image_name                 = "name"
  image_share_account        = null
  image_unshare_account      = null
  image_copy_regions         = null
  image_copy_names           = null
  tags                       = null
  tag                        = null
  system_disk_mapping        = { disk_category = null, disk_delete_with_instance = null, disk_descri
ption = null, disk_device = null, disk_encrypted = null, disk_name = "name", disk_size = null, disk_
snapshot_id = null }
  image_disk_mappings        = null
  ssh_remote_tunnels         = null
  ssh_local_tunnels          = null
  ssh_public_key             = null
  ssh_private_key            = null
}
```

This is a good first step for #9015 and #9282 

fix #9304
2020-05-28 11:19:00 +02:00
..
plugin Merge remote-tracking branch 'origin/master' into sharing_info 2019-12-17 11:57:09 +01:00
rpc Merge remote-tracking branch 'origin/master' into sharing_info 2019-12-17 11:57:09 +01:00
test-fixtures Add RetriedProvisioner to allow retry provisioners (#9061) 2020-04-16 11:58:54 +02:00
tmp clarify comments 2019-01-09 16:30:43 +01:00
artifact.go Expand Artifact API to expose build state 2014-09-22 11:15:47 +01:00
artifact_mock.go Fix gosimple S1005 linting issue (#8870) 2020-03-11 10:30:08 +01:00
artifact_test.go Fix gosimple S1005 linting issue (#8870) 2020-03-11 10:30:08 +01:00
build.go Json vs HCL2 parity refactor (#9301) 2020-05-28 10:43:58 +02:00
build_test.go Avoid calling CoreBuild.Prepare(...) for HCL2 templates (#8742) 2020-02-14 17:39:32 +01:00
builder.go Merge remote-tracking branch 'origin/master' into sharing_info 2019-12-17 11:57:09 +01:00
builder_mock.go add tests for info sharing 2019-12-17 13:41:48 -08:00
builder_mock.hcl2spec.go HCL2: generate hcl tags with go-cty tags too (#9306) 2020-05-28 11:19:00 +02:00
builder_test.go packer: builder prepare can return warnings 2013-11-02 22:31:12 -05:00
cache.go I use Dir instead of Base for mkdirall call 2019-03-28 13:17:15 -07:00
cache_test.go Use the hashicorp/go-getter to download files 2019-03-13 12:11:58 +01:00
communicator.go build using HCL2 (#8423) 2019-12-17 11:25:56 +01:00
communicator_mock.go Add unit test to find issue #7655 2019-05-17 22:27:19 +00:00
communicator_mock_test.go packer: Add UploadDir to the Communicator interface 2013-08-25 20:30:56 -07:00
communicator_test.go use our own copy of iochan.LineReader 2019-04-11 14:25:24 +02:00
config_file.go build using HCL2 (#8423) 2019-12-17 11:25:56 +01:00
config_file_test.go packer: remove unused test variable 2019-11-04 12:53:16 -08:00
config_file_unix.go make code of homeDir, configFile & configDir not os specific anymore 2018-11-30 15:47:43 +01:00
config_file_windows.go make code of homeDir, configFile & configDir not os specific anymore 2018-11-30 15:47:43 +01:00
core.go Json vs HCL2 parity refactor (#9301) 2020-05-28 10:43:58 +02:00
core_test.go Update core_test.go 2020-04-30 16:40:58 +02:00
fixconfigmode_enumer.go fix enum 2020-05-08 16:54:44 +02:00
hcl2spec.go build using HCL2 (#8423) 2019-12-17 11:25:56 +01:00
hook.go get data sharing to a working state with the powershell provisioner 2019-12-11 15:43:38 -08:00
hook_mock.go [Builder|Build|PostProcessor|Provisioner|Hook]Server: context cancel using a RPC cancel method 2019-04-03 15:55:55 +02:00
hook_test.go [Builder|Build|PostProcessor|Provisioner|Hook]Server: context cancel using a RPC cancel method 2019-04-03 15:55:55 +02:00
logs.go replace scrubconfig with packer.LogSecretFilter.Set 2018-08-20 15:35:55 -07:00
maps.go build using HCL2 (#8423) 2019-12-17 11:25:56 +01:00
multi_error.go WIP 2018-10-26 16:59:20 -07:00
multi_error_test.go packer: no more asserts lib 2013-10-16 21:09:27 -10:00
packer_test.go packer: Core, and template validate 2015-05-23 14:48:07 -07:00
post_processor.go build using HCL2 (#8423) 2019-12-17 11:25:56 +01:00
post_processor_mock.go build using HCL2 (#8423) 2019-12-17 11:25:56 +01:00
progressbar.go allow building packer on solaris by removing progress bar and tty imports 2019-05-07 15:58:49 +02:00
progressbar_noop.go allow building packer on solaris by removing progress bar and tty imports 2019-05-07 15:58:49 +02:00
progressbar_solaris.go allow building packer on solaris by removing progress bar and tty imports 2019-05-07 15:58:49 +02:00
progressbar_test.go Use the hashicorp/go-getter to download files 2019-03-13 12:11:58 +01:00
provisioner.go Replace file shared state by statebag (#9238) 2020-05-19 11:49:48 +02:00
provisioner_mock.go Add RetriedProvisioner to allow retry provisioners (#9061) 2020-04-16 11:58:54 +02:00
provisioner_test.go Add RetriedProvisioner to allow retry provisioners (#9061) 2020-04-16 11:58:54 +02:00
provisioner_timeout.go change all provision func signatures to use map[string]interface{} 2019-12-12 15:38:32 -08:00
run_interfaces.go enable force, debug, and on-error for hcl2 builds 2020-05-14 16:22:51 -07:00
telemetry.go Remove telemetry error reporting message. 2018-02-20 10:54:20 -08:00
telemetry_test.go add config key reporting 2017-11-14 16:30:44 -08:00
testing.go build using HCL2 (#8423) 2019-12-17 11:25:56 +01:00
tty.go Close tty on exit (#7411) 2019-03-15 11:10:30 +01:00
ui.go Allow to use isos in place 2020-02-06 17:07:58 +01:00
ui_test.go Close tty on exit (#7411) 2019-03-15 11:10:30 +01:00