Added support for custom error handlers for MustXXX() functions.
Changed default from panic to log fatal.
5 files changed
tree: ac1fca0800b10441a58453ad6504d63bb64eee91
  1. .gitignore
  2. .travis.yml
  3. benchmark_test.go
  4. doc.go
  5. example_test.go
  6. lex.go
  7. LICENSE
  8. load.go
  9. load_test.go
  10. parser.go
  11. properties.go
  12. properties_test.go
  13. rangecheck.go
  14. README.md
README.md

Overview Build Status

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.

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.

The properties library supports both ISO-8859-1 and UTF-8 encoded data.

Getting Started

import "github.com/magiconair/properties"

func main() {
	p := properties.MustLoadFile("${HOME}/config.properties", properties.UTF8)
	host := p.MustGetString("host")
	port := p.GetInt("port", 8080)
}

Read the full documentation on GoDoc GoDoc

Installation and Upgrade

$ go get -u github.com/magiconair/properties

History

v1.3.0, 18 Mar 2014

  • Added support for time.Duration
  • Made MustXXX() failure behavior configurable (log.Fatal, panic, custom)
  • Changed default of MustXXX() failure from panic to log.Fatal

v1.2.0, 05 Mar 2014

  • Added MustGet... functions
  • Added support for int and uint with range checks on 32 bit platforms

v1.1.0, 20 Jan 2014

  • Renamed from goproperties to properties
  • Added support for expansion of environment vars in filenames and value expressions
  • Fixed bug where value expressions were not at the start of the string

v1.0.0, 7 Jan 2014

  • Initial release

License

2 clause BSD license. See LICENSE file for details.

ToDo

  • Dump contents with passwords and secrets obscured
  • panic on non-existent key
  • log non-existent key