Skip to content

brettlangdon/forge

Repository files navigation

forge

Build Status GoDoc

Forge is a configuration syntax and parser.

Installation

go get github.com/brettlangdon/forge

Documentation

Documentation can be viewed on godoc: https://godoc.org/github.com/brettlangdon/forge

Example

You can see example usage in the example folder.

# example.cfg # Global directives global = "global value"; # Primary section primary { string = "primary string value"; single = 'single quotes are allowed too'; # Semicolons are optional integer = 500 float = 80.80 boolean = true negative = FALSE nothing = NULL list = [50.5, true, false, "hello", 'world']; # Include external files include "./include*.cfg"; # Primary-sub section  sub { key = "primary sub key value"; } } # Secondary section secondary { another = "secondary another value"; global_reference = global; primary_sub_key = primary.sub.key; another_again = .another; # References secondary.another _under = 50; }
package main import ( "fmt" "json" "github.com/brettlangdon/forge" ) func main() { // Parse a `SectionValue` from `example.cfg` settings, err := forge.ParseFile("example.cfg") if err != nil { panic(err)	} // Get a single value if settings.Exists("global") { // Get `global` casted as a string value, _ := settings.GetString("global") fmt.Printf("global = \"%s\"\r\n", value)	} // Get a nested value value, err := settings.Resolve("primary.included_setting") fmt.Printf("primary.included_setting = \"%s\"\r\n", value.GetValue()) // You can also traverse down the sections manually primary, err := settings.GetSection("primary") strVal, err := primary.GetString("included_setting") fmt.Printf("primary.included_setting = \"%s\"\r\n", strVal) // Convert settings to a map settingsMap := settings.ToMap() fmt.Printf("global = \"%s\"\r\n", settingsMap["global"]) // Convert settings to JSON jsonBytes, err := settings.ToJSON() fmt.Printf("\r\n\r\n%s\r\n", string(jsonBytes)) }

Issues/Requests?

Please feel free to open a github issue for any issues you have or any feature requests.

About

Configuration file syntax and parsing for golang

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages