Skip to content

goConfig uses a struct as input and populates the fields of this struct with parameters from command line, environment variables and configuration file.

License

Notifications You must be signed in to change notification settings

appleboy/goConfig

Repository files navigation

goConfig

Build Status Go Report Card codecov GoDoc Go project version MIT Licensed

goConfig uses a struct as input and populates the fields of this struct with parameters fom command line, environment variables and configuration file.

Install

go get github.com/crgimenes/goConfig

Example

package main

import "fmt"
import "github.com/crgimenes/goConfig"

type mongoDB struct {
	Host string `cfgDefault:"example.com"`
	Port int    `cfgDefault:"999"`
}

type configTest struct {
	Domain  string
	MongoDB mongoDB
}

func main() {
	config := configTest{}
	err := goConfig.Parse(&config)
	if err != nil {
		fmt.Println(err)
		return
	}

	fmt.Printf("\n\n%#v\n\n", config)
}

With the example above try environment variables like $DOMAIN or $MONGODB_HOST and run the example again to see what happens.

You can also try using parameters on the command line, try -h to see the help.

Contributing

  • Fork the repo on GitHub
  • Clone the project to your own machine
  • Create a branch with your modifications git checkout -b fantastic-feature.
  • Then commit your changes git commit -m 'Implementation of new fantastic feature'
  • Make a push to your branch git push origin fantastic-feature.
  • Submit a Pull Request so that we can review your changes

About

goConfig uses a struct as input and populates the fields of this struct with parameters from command line, environment variables and configuration file.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published