INI parsing library for Go.
Go
Permalink
Failed to load latest commit information.
LICENSE Added MIT LICENSE file Apr 23, 2013
README.md Improved the behaviour of parseFile wrt. when sections are defined. Sep 18, 2013
ini.go
ini_linux_test.go Moved LoadFile test to a linux-only test file. Sep 23, 2013
ini_test.go Moved LoadFile test to a linux-only test file. Sep 23, 2013
test.ini

README.md

go-ini

INI parsing library for Go (golang).

View the API documentation here.

Usage

Parse an INI file:

import "github.com/vaughan0/go-ini"

file, err := ini.LoadFile("myfile.ini")

Get data from the parsed file:

name, ok := file.Get("person", "name")
if !ok {
  panic("'name' variable missing from 'person' section")
}

Iterate through values in a section:

for key, value := range file["mysection"] {
  fmt.Printf("%s => %s\n", key, value)
}

Iterate through sections in a file:

for name, section := range file {
  fmt.Printf("Section name: %s\n", name)
}

File Format

INI files are parsed by go-ini line-by-line. Each line may be one of the following:

  • A section definition: [section-name]
  • A property: key = value
  • A comment: #blahblah or ;blahblah
  • Blank. The line will be ignored.

Properties defined before any section headers are placed in the default section, which has the empty string as it's key.

Example:

# I am a comment
; So am I!

[apples]
colour = red or green
shape = applish

[oranges]
shape = square
colour = blue