34955ebf80
For programs that don't need fine control over the process of decoding a configuration, this allow a one-shot decode into a value of a Go struct type.
35 lines
1.2 KiB
Go
35 lines
1.2 KiB
Go
// Package hcl contains the main modelling types and general utility functions
|
|
// for HCL.
|
|
//
|
|
// For a simple entry point into HCL, see the package in the subdirectory
|
|
// "hclsimple", which has an opinionated function Decode that can decode HCL
|
|
// configurations in either native HCL syntax or JSON syntax into a Go struct
|
|
// type:
|
|
//
|
|
// package main
|
|
//
|
|
// import (
|
|
// "log"
|
|
// "github.com/hashicorp/hcl/v2/hclsimple"
|
|
// )
|
|
//
|
|
// type Config struct {
|
|
// LogLevel string `hcl:"log_level"`
|
|
// }
|
|
//
|
|
// func main() {
|
|
// var config Config
|
|
// err := hclsimple.DecodeFile("config.hcl", nil, &config)
|
|
// if err != nil {
|
|
// log.Fatalf("Failed to load configuration: %s", err)
|
|
// }
|
|
// log.Printf("Configuration is %#v", config)
|
|
// }
|
|
//
|
|
// If your application needs more control over the evaluation of the
|
|
// configuration, you can use the functions in the subdirectories hclparse,
|
|
// gohcl, hcldec, etc. Splitting the handling of configuration into multiple
|
|
// phases allows for advanced patterns such as allowing expressions in one
|
|
// part of the configuration to refer to data defined in another part.
|
|
package hcl
|