make goconf compile with latest weekly.

This commit is contained in:
Andreas Krennmair 2012-01-29 01:52:54 +01:00
parent f602e48a7b
commit bf7cc3a37c
4 changed files with 24 additions and 32 deletions

10
conf.go
View File

@ -105,9 +105,9 @@ func (c *ConfigFile) RemoveSection(section string) bool {
return false // default section cannot be removed
default:
for o, _ := range c.data[section] {
c.data[section][o] = "", false
delete(c.data[section], o)
}
c.data[section] = nil, false
delete(c.data, section)
}
return true
@ -142,7 +142,7 @@ func (c *ConfigFile) RemoveOption(section string, option string) bool {
}
_, ok := c.data[section][option]
c.data[section][option] = "", false
delete(c.data[section], option)
return ok
}
@ -168,7 +168,7 @@ type GetError struct {
Option string
}
func (err GetError) String() string {
func (err GetError) Error() string {
switch err.Reason {
case SectionNotFound:
return fmt.Sprintf("section '%s' not found", string(err.Section))
@ -188,7 +188,7 @@ type ReadError struct {
Line string
}
func (err ReadError) String() string {
func (err ReadError) Error() string {
switch err.Reason {
case BlankSection:
return "empty section name not allowed"

24
get.go
View File

@ -1,9 +1,8 @@
package conf
import (
"os"
"strings"
"strconv"
"strings"
)
// GetSections returns the list of sections in the configuration.
@ -31,11 +30,10 @@ func (c *ConfigFile) HasSection(section string) bool {
return ok
}
// GetOptions returns the list of options available in the given section.
// It returns an error if the section does not exist and an empty list if the section is empty.
// Options within the default section are also included.
func (c *ConfigFile) GetOptions(section string) (options []string, err os.Error) {
func (c *ConfigFile) GetOptions(section string) (options []string, err error) {
if section == "" {
section = "default"
}
@ -59,7 +57,6 @@ func (c *ConfigFile) GetOptions(section string) (options []string, err os.Error)
return options, nil
}
// HasOption checks if the configuration has the given option in the section.
// It returns false if either the option or section do not exist.
func (c *ConfigFile) HasOption(section string, option string) bool {
@ -79,11 +76,10 @@ func (c *ConfigFile) HasOption(section string, option string) bool {
return okd || oknd
}
// GetRawString gets the (raw) string value for the given option in the section.
// The raw string value is not subjected to unfolding, which was illustrated in the beginning of this documentation.
// It returns an error if either the section or the option do not exist.
func (c *ConfigFile) GetRawString(section string, option string) (value string, err os.Error) {
func (c *ConfigFile) GetRawString(section string, option string) (value string, err error) {
if section == "" {
section = "default"
}
@ -100,12 +96,11 @@ func (c *ConfigFile) GetRawString(section string, option string) (value string,
return "", GetError{SectionNotFound, "", "", section, option}
}
// GetString gets the string value for the given option in the section.
// If the value needs to be unfolded (see e.g. %(host)s example in the beginning of this documentation),
// then GetString does this unfolding automatically, up to DepthValues number of iterations.
// It returns an error if either the section or the option do not exist, or the unfolding cycled.
func (c *ConfigFile) GetString(section string, option string) (value string, err os.Error) {
func (c *ConfigFile) GetString(section string, option string) (value string, err error) {
value, err = c.GetRawString(section, option)
if err != nil {
return "", err
@ -143,9 +138,8 @@ func (c *ConfigFile) GetString(section string, option string) (value string, err
return value, nil
}
// GetInt has the same behaviour as GetString but converts the response to int.
func (c *ConfigFile) GetInt(section string, option string) (value int, err os.Error) {
func (c *ConfigFile) GetInt(section string, option string) (value int, err error) {
sv, err := c.GetString(section, option)
if err == nil {
value, err = strconv.Atoi(sv)
@ -157,12 +151,11 @@ func (c *ConfigFile) GetInt(section string, option string) (value int, err os.Er
return value, err
}
// GetFloat has the same behaviour as GetString but converts the response to float.
func (c *ConfigFile) GetFloat64(section string, option string) (value float64, err os.Error) {
func (c *ConfigFile) GetFloat64(section string, option string) (value float64, err error) {
sv, err := c.GetString(section, option)
if err == nil {
value, err = strconv.Atof64(sv)
value, err = strconv.ParseFloat(sv, 64)
if err != nil {
err = GetError{CouldNotParse, "float64", sv, section, option}
}
@ -171,10 +164,9 @@ func (c *ConfigFile) GetFloat64(section string, option string) (value float64, e
return value, err
}
// GetBool has the same behaviour as GetString but converts the response to bool.
// See constant BoolStrings for string values converted to bool.
func (c *ConfigFile) GetBool(section string, option string) (value bool, err os.Error) {
func (c *ConfigFile) GetBool(section string, option string) (value bool, err error) {
sv, err := c.GetString(section, option)
if err != nil {
return false, err

14
read.go
View File

@ -1,16 +1,16 @@
package conf
import (
"bufio"
"bytes"
"io"
"os"
"bytes"
"bufio"
"strings"
)
// ReadConfigFile reads a file and returns a new configuration representation.
// This representation can be queried with GetString, etc.
func ReadConfigFile(fname string) (c *ConfigFile, err os.Error) {
func ReadConfigFile(fname string) (c *ConfigFile, err error) {
var file *os.File
if file, err = os.Open(fname); err != nil {
@ -29,7 +29,7 @@ func ReadConfigFile(fname string) (c *ConfigFile, err os.Error) {
return c, nil
}
func ReadConfigBytes(conf []byte) (c *ConfigFile, err os.Error) {
func ReadConfigBytes(conf []byte) (c *ConfigFile, err error) {
buf := bytes.NewBuffer(conf)
c = NewConfigFile()
@ -42,7 +42,7 @@ func ReadConfigBytes(conf []byte) (c *ConfigFile, err os.Error) {
// Read reads an io.Reader and returns a configuration representation. This
// representation can be queried with GetString, etc.
func (c *ConfigFile) Read(reader io.Reader) (err os.Error) {
func (c *ConfigFile) Read(reader io.Reader) (err error) {
buf := bufio.NewReader(reader)
var section, option string
@ -52,7 +52,7 @@ func (c *ConfigFile) Read(reader io.Reader) (err os.Error) {
l = strings.TrimSpace(l)
if buferr != nil {
if buferr != os.EOF {
if buferr != io.EOF {
return err
}
@ -103,7 +103,7 @@ func (c *ConfigFile) Read(reader io.Reader) (err os.Error) {
}
// Reached end of file
if buferr == os.EOF {
if buferr == io.EOF {
break
}
}

View File

@ -1,15 +1,15 @@
package conf
import (
"os"
"io"
"bytes"
"io"
"os"
)
// WriteConfigFile saves the configuration representation to a file.
// The desired file permissions must be passed as in os.Open.
// The header is a string that is saved as a comment in the first line of the file.
func (c *ConfigFile) WriteConfigFile(fname string, perm uint32, header string) (err os.Error) {
func (c *ConfigFile) WriteConfigFile(fname string, perm uint32, header string) (err error) {
var file *os.File
if file, err = os.Create(fname); err != nil {
@ -32,7 +32,7 @@ func (c *ConfigFile) WriteConfigBytes(header string) (config []byte) {
}
// Writes the configuration file to the io.Writer.
func (c *ConfigFile) Write(writer io.Writer, header string) (err os.Error) {
func (c *ConfigFile) Write(writer io.Writer, header string) (err error) {
buf := bytes.NewBuffer(nil)
if header != "" {