Categorygithub.com/gofor-little/env
modulepackage
1.0.19
Repository: https://github.com/gofor-little/env.git
Documentation: pkg.go.dev

# README

A package for managing .env files and environment variables

GitHub tag (latest SemVer pre-release) GitHub go.mod Go version License: MIT GitHub Workflow Status Go Report Card PkgGoDev

Introduction

  • Read from and write to .env files
  • Get and set environment variables
  • No dependencies outside the standard library

Example

package main

import "github.com/gofor-little/env"

func main() {
	// Load an .env file and set the key-value pairs as environment variables.
	if err := env.Load("FILE_PATH"); err != nil {
		panic(err)
	}

	// Write a key-value pair to an .env file and call env.Set on it.
	if err := env.Write("KEY", "VALUE", "FILE_PATH", true); err != nil {
		panic(err)
	}

	// Get an environment variable's value with a default backup value.
	value := env.Get("KEY", "DEFAULT_VALUE")

	// Get an environment variable's value, receiving an error if it is not set or is empty.
	value, err := env.MustGet("KEY")
	if err != nil {
		panic(err)
	}

	// Set an environment variable locally.
	if err := env.Set("KEY", "VALUE"); err != nil {
		panic(err)
	}
}

Valid env variable examples

# This is a comment example

DB_NAME=dev_db # This is an inline comment example.
# Everything after the # is interpreted as a comment.

# DB_NAME=testing_db # This in an ignored env example

DB_PASSWORD="#db_password#secret" # This is a wrapped env example
# The # whitin double quotes is interpreted as the literal character 

Testing

Run go test ./... in the root directory.

# Functions

Get gets an environment variable with a default backup value as the second parameter.
Load loads and sets the environment variables from file using fileNames.
MustGet gets an environment variable and will return an error if the environment variable is not set or is empty.
Set is just a wrapper os.Setenv, this is useful for locally overriding environment variables.
Write writes a key-value pair to a file that can be set to an environment variable later on with env.Load().