80 lines
2.3 KiB
Markdown
80 lines
2.3 KiB
Markdown
Overview [![Build Status](https://travis-ci.org/magiconair/properties.svg?branch=master)](https://travis-ci.org/magiconair/properties)
|
|
========
|
|
|
|
#### Current version: 1.6.0
|
|
|
|
properties is a Go library for reading and writing properties files.
|
|
|
|
It supports reading from multiple files 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)
|
|
}
|
|
|
|
```
|
|
|
|
Read the full documentation on [GoDoc](https://godoc.org/github.com/magiconair/properties) [![GoDoc](https://godoc.org/github.com/magiconair/properties?status.png)](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
|