package dotenv

import "github.com/compose-spec/compose-go/v2/dotenv"

Package dotenv is a go port of the ruby dotenv library (https://github.com/bkeepers/dotenv)

Examples/readme can be found on the github page at https://github.com/joho/godotenv

The TL;DR is that you make a .env file that looks something like

SOME_ENV_VAR=somevalue

and then in your go code you can call

godotenv.Load()

and all the env vars declared in .env will be available through os.Getenv("SOME_ENV_VAR")

Index

Functions

func GetEnvFromFile

func GetEnvFromFile(currentEnv map[string]string, filenames []string) (map[string]string, error)

func Load

func Load(filenames ...string) error

Load will read your env file(s) and load them into ENV for this process.

Call this function as close as possible to the start of your program (ideally in main).

If you call Load without any args it will default to loading .env in the current path.

You can otherwise tell it which files to load (there can be more than one) like:

godotenv.Load("fileone", "filetwo")

It's important to note that it WILL NOT OVERRIDE an env variable that already exists - consider the .env file to set dev vars or sensible defaults

func Parse

func Parse(r io.Reader) (map[string]string, error)

Parse reads an env file from io.Reader, returning a map of keys and values.

func ParseWithFormat

func ParseWithFormat(r io.Reader, filename string, resolve LookupFn, format string) (map[string]string, error)

func ParseWithLookup

func ParseWithLookup(r io.Reader, lookupFn LookupFn) (map[string]string, error)

ParseWithLookup reads an env file from io.Reader, returning a map of keys and values.

func Read

func Read(filenames ...string) (map[string]string, error)

Read all env (with same file loading semantics as Load) but return values as a map rather than automatically writing values into env

func ReadFile

func ReadFile(filename string, lookupFn LookupFn) (map[string]string, error)

func ReadWithLookup

func ReadWithLookup(lookupFn LookupFn, filenames ...string) (map[string]string, error)

ReadWithLookup gets all env vars from the files and/or lookup function and return values as a map rather than automatically writing values into env

func RegisterFormat

func RegisterFormat(format string, p Parser)

func UnmarshalBytesWithLookup

func UnmarshalBytesWithLookup(src []byte, lookupFn LookupFn) (map[string]string, error)

UnmarshalBytesWithLookup parses env file from byte slice of chars, returning a map of keys and values.

func UnmarshalWithLookup

func UnmarshalWithLookup(src string, lookupFn LookupFn) (map[string]string, error)

UnmarshalWithLookup parses env file from string, returning a map of keys and values.

Types

type LookupFn

type LookupFn func(string) (string, bool)

LookupFn represents a lookup function to resolve variables from

type Parser

type Parser func(r io.Reader, filename string, lookup func(key string) (string, bool)) (map[string]string, error)

Source Files

env.go format.go godotenv.go parser.go

Version
v2.4.8 (latest)
Published
Feb 10, 2025
Platform
linux/amd64
Imports
11 packages
Last checked
2 months ago

Tools for package owners.