Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

github.com/gerbenjacobs/properties

Package Overview
Dependencies
Alerts
File Explorer
Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

github.com/gerbenjacobs/properties

  • v1.5.4
  • Source
  • Go
  • Socket score

Version published
Created
Source

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.

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

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

For testing and debugging you need the go-check library

$ go get -u gopkg.in/check.v1

History

v1.5.4, 23 Jun 2015

  • Issue #5: Allow disabling of property expansion DisableExpansion. When property expansion is disabled Properties become a simple key/value store and don't check for circular references.

v1.5.3, 02 Jun 2015

v1.5.2, 10 Apr 2015

v1.5.1, 08 Dec 2014

v1.5.0, 18 Nov 2014

  • Added support for single and multi-line comments (reading, writing and updating)
  • The order of keys is now preserved
  • Calling Set() with an empty key now silently ignores the call and does not create a new entry
  • Added a MustSet() method
  • Migrated test library from launchpad.net/gocheck to gopkg.in/check.v1

v1.4.2, 15 Nov 2014

  • Issue #2: Fixed goroutine leak in parser which created two lexers but cleaned up only one

v1.4.1, 13 Nov 2014

  • Issue #1: Fixed bug in Keys() method which returned an empty string

v1.4.0, 23 Sep 2014

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

FAQs

Package last updated on 23 Jun 2015

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc