envcfg

package module
v0.0.0-...-96e522c Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 14, 2015 License: MIT Imports: 5 Imported by: 0

README

envcfg Build Status

Package envcfg provides environment variable mapping to structs.

It can be used to read configuration parameters from the environment.

Fields for which environment variables can be found are overwritten, otherwise they are left to their previous value.

This package can be used, for example, after gcfg to override settings provided in a configuration file.

import "github.com/Pacien/envcfg"

Documentation

Package documentation can be found on GoDoc

Usage example

Set environment variables:

export PORT=8080
export USER_PASSWORD="S3cUrE"

Create a struct optionally with tagged fields and/or already set values, then call the ReadInto function to read the values set in the environment variables.

package main

import (
	"fmt"
	"github.com/Pacien/envcfg"
)

type Config struct {
	Server struct {
		Port        int `env:"PORT" absenv:"true"`
	}
	User struct {
		Username    string
		Password    string
	}
}

var cnf Config

func (c *Config) setDefaults() *Config {
	c.User.Username = "root"
	c.User.Password = "password"
	return c
}

func init() {
	cnf.setDefaults()

	_, errs := envcfg.ReadInto(&cnf)
	if len(errs) != 0 {
		fmt.Println(errs)
	}
}

func main() {
	fmt.Println(cnf)
}

Output of the previous program:

{{8080} {root S3cUrE}}

See tests for other examples.

License

This program is published under the MIT License. See the LICENSE.txt file.

Documentation

Overview

Package envcfg provides environment variable mapping to structs.

Can be used to read configuration parameters from the environment.

Fields for which environment variables can be found are overwritten, otherwise they are left to their previous value.

Can be used, for example, after gcfg to override settings provided in a configuration file.

Index

Constants

View Source
const (
	TAG     = "env"
	ABS_TAG = "absenv"
	SEP     = "_"
)

Variables

View Source
var ErrInvalidConfigStruct = errors.New("invalid parameter: must map to a struct")

Functions

func ReadInto

func ReadInto(cfgStruct interface{}) (interface{}, []error)

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL