A Go port of Ruby's dotenv library (Loads environment variables from `.env`.)
 
 
Go to file
John Barton (joho) 33e2555609 Licence and more readme 2013-07-31 14:16:18 +10:00
fixtures First failing tests extracted from dotenv 2013-07-30 11:46:52 +10:00
.gitignore Macs are dumb. 2013-07-30 11:46:42 +10:00
LICENCE Licence and more readme 2013-07-31 14:16:18 +10:00
README.md Licence and more readme 2013-07-31 14:16:18 +10:00
godotenv.go Make Load() without args open .env by default 2013-07-31 13:51:59 +10:00
godotenv_test.go Make Load() without args open .env by default 2013-07-31 13:51:59 +10:00
wercker.yml Add wercker.yml for CI 2013-07-31 13:55:35 +10:00

README.md

GoDotEnv wercker status

A Go (golang) port of the Ruby dotenv project (which loads env vars from a .env file)

Installation

go get github.com/joho/godotenv

Usage

Add your application configuration to your .env file in the root of your project:

S3_BUCKET=YOURS3BUCKET
SECRET_KEY=YOURSECRETKEYGOESHERE

Then in your Go app you can do something like

import (
    "github.com/joho/godotenv"
    "os"
)

err := godotenv.Load()
if err != nil {
  os.Fatal("Error loading .env file")
}

s3Bucket := os.Getenv("S3_BUCKET")
secretKey := os.Getenv("SECRET_KEY")

While .env in the project root is the default, you don't have to be constrained

_ := godotenv.Load("somerandomfile")
_ := godotenv.Load("filenumberone.env", "filenumbertwo.env")

Are all valid options

Contributing

Contributions are most welcome! The parser itself is pretty stupidly naive and I wouldn't be surprised if it breaks with edge cases.

code changes without tests will not be accepted

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Added some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

Who?

The original library dotenv was written by Brandon Keepers, and this port was done by John Barton based off the tests/fixtures in the original library.