| Overview [](https://travis-ci.org/magiconair/properties) |
| ======== |
| |
| #### Current version: 1.7.0 |
| |
| properties is a Go library for reading and writing properties files. |
| |
| It supports reading from multiple files or URLs and Spring style recursive |
| property expansion of expressions like `${key}` to their corresponding value. |
| Value expressions can refer to other keys like in `${key}` or to environment |
| variables like in `${USER}`. Filenames can also contain environment variables |
| like in `/home/${USER}/myapp.properties`. |
| |
| Properties can be decoded into structs, maps, arrays and values through |
| struct tags. |
| |
| Comments and the order of keys are preserved. Comments can be modified |
| and can be written to the output. |
| |
| The properties library supports both ISO-8859-1 and UTF-8 encoded data. |
| |
| Starting from version 1.3.0 the behavior of the MustXXX() functions is |
| configurable by providing a custom `ErrorHandler` function. The default has |
| changed from `panic` to `log.Fatal` but this is configurable and custom |
| error handling functions can be provided. See the package documentation for |
| details. |
| |
| Getting Started |
| --------------- |
| |
| ```go |
| import ( |
| "flag" |
| "github.com/magiconair/properties" |
| ) |
| |
| func main() { |
| p := properties.MustLoadFile("${HOME}/config.properties", properties.UTF8) |
| |
| // via getters |
| host := p.MustGetString("host") |
| port := p.GetInt("port", 8080) |
| |
| // or via decode |
| type Config struct { |
| Host string `properties:"host"` |
| Port int `properties:"port,default=9000"` |
| Accept []string `properties:"accept,default=image/png;image;gif"` |
| Timeout time.Duration `properties:"timeout,default=5s"` |
| } |
| var cfg Config |
| if err := p.Decode(&cfg); err != nil { |
| log.Fatal(err) |
| } |
| |
| // or via flags |
| p.MustFlag(flag.CommandLine) |
| |
| // or via url |
| p = properties.MustLoadURL("http://host/path") |
| } |
| |
| ``` |
| |
| Read the full documentation on [GoDoc](https://godoc.org/github.com/magiconair/properties) [](https://godoc.org/github.com/magiconair/properties) |
| |
| Installation and Upgrade |
| ------------------------ |
| |
| ``` |
| $ go get -u github.com/magiconair/properties |
| ``` |
| |
| License |
| ------- |
| |
| 2 clause BSD license. See [LICENSE](https://github.com/magiconair/properties/blob/master/LICENSE) file for details. |
| |
| ToDo |
| ---- |
| * Dump contents with passwords and secrets obscured |