64 lines
1006 B
Go
64 lines
1006 B
Go
|
package hclprinter
|
||
|
|
||
|
import (
|
||
|
"os"
|
||
|
"testing"
|
||
|
|
||
|
"github.com/hashicorp/hcl/hcl"
|
||
|
)
|
||
|
|
||
|
var complexHcl = `// This comes from Terraform, as a test
|
||
|
variable "foo" {
|
||
|
default = "bar"
|
||
|
description = "bar"
|
||
|
}
|
||
|
|
||
|
provider "aws" {
|
||
|
access_key = "foo"
|
||
|
secret_key = "bar"
|
||
|
}
|
||
|
|
||
|
provider "do" {
|
||
|
api_key = "${var.foo}"
|
||
|
}
|
||
|
|
||
|
resource "aws_security_group" "firewall" {
|
||
|
count = 5
|
||
|
}
|
||
|
|
||
|
resource aws_instance "web" {
|
||
|
ami = "${var.foo}"
|
||
|
security_groups = [
|
||
|
"foo",
|
||
|
"${aws_security_group.firewall.foo}"
|
||
|
]
|
||
|
|
||
|
network_interface {
|
||
|
device_index = 0
|
||
|
description = "Main network interface"
|
||
|
}
|
||
|
}
|
||
|
|
||
|
resource "aws_instance" "db" {
|
||
|
security_groups = "${aws_security_group.firewall.*.id}"
|
||
|
VPC = "foo"
|
||
|
|
||
|
depends_on = ["aws_instance.web"]
|
||
|
}
|
||
|
|
||
|
output "web_ip" {
|
||
|
value = "${aws_instance.web.private_ip}"
|
||
|
}
|
||
|
`
|
||
|
|
||
|
func TestPrint(t *testing.T) {
|
||
|
obj, err := hcl.Parse(complexHcl)
|
||
|
if err != nil {
|
||
|
t.Fatal(err)
|
||
|
}
|
||
|
|
||
|
if err := Fprint(os.Stdout, obj); err != nil {
|
||
|
t.Error(err)
|
||
|
}
|
||
|
}
|