Popularity
5.1
Growing
Activity
3.6
Declining
141
12
21

Programming language: Go
Tags: Configuration    
Latest version: v1.3.0

goConfig alternatives and similar packages

Based on the "Configuration" category

Do you think we are missing an alternative of goConfig or a related project?

Add another 'Configuration' Package

README

goconfig

Build Status Go Report Card Test Coverage Maintainability GoDoc Go project version MIT Licensed Gitpod Ready-to-Code

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

Install

go get github.com/gosidekick/goconfig

Example

package main

import "github.com/gosidekick/goconfig"

/*
step 1: Declare your configuration struct,
it may or may not contain substructures.
*/

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

type configTest struct {
    Domain    string
    DebugMode bool `json:"db" cfg:"db" cfgDefault:"false"`
    MongoDB   mongoDB
    IgnoreMe  string `cfg:"-"`
}

func main() {

    // step 2: Instantiate your structure.
    config := configTest{}

    // step 3: Pass the instance pointer to the parser
    err := goconfig.Parse(&config)
    if err != nil {
        println(err)
        return
    }

    /*
       The parser populated your struct with the data
       it took from environment variables and command
       line and now you can use it.
    */

    println("config.Domain......:", config.Domain)
    println("config.DebugMode...:", config.DebugMode)
    println("config.MongoDB.Host:", config.MongoDB.Host)
    println("config.MongoDB.Port:", config.MongoDB.Port)
}

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


*Note that all licence references and agreements mentioned in the goConfig README section above are relevant to that project's source code only.