Giter Club home page Giter Club logo

env's Introduction

Env

Env is a simple package providing configuration as environment variables for 12 factor applications, inspired by the Go flag package.

Basic usage

package main

var bindAddress = env.String("BIND_ADDRESS",true,"","bind address for server, i.e. localhost")
var bindPort = env.Integer("BIND_Port",true,0,"bind port for server, i.e. 9090")

func main() {
  err := env.Parse()
  if err != nil {
    fmt.Println(err.Error())
    os.Exit(1)
  }

  fmt.Println("bind address:", *bindAddress)
  fmt.Println("bind port:", *bindPort)
}

Showing help menu

Configuring an application with environment variables can be confusing to the user as often the configuration options are listed in the documentation rather than accessible from the command line like flag based configuration. Env has a built in help menu which can be accessed using the --help command line flag.

var bindAddress = env.String("BIND_ADDR", false, "localhost:9090", "Bind address for the server, i.e. localhost:9090")
var cacheURI = env.String("CACHE_URI", true, "", "URI for the cache server, i.e. localhost:9090")

func main() {
  err := env.Parse()
โžœ BIND_PORT=9090 BIND_ADDRESS=localhost go run main.go --help
Configuration values are set using environment variables, for info please see the following list.

Environment variables:
  BIND_ADDRESS  default: no default
       bind address for server, i.e. localhost
  BIND_PORT  default: '0'
       bind port for server, i.e. 9090

env's People

Contributors

farzad-845 avatar monegim avatar nicholasjackson avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.