github.com/seeker-insurance/kit@v0.0.13/env/load.go (about)

     1  package env
     2  
     3  import (
     4  	"fmt"
     5  	"os"
     6  
     7  	"github.com/joho/godotenv"
     8  	"github.com/seeker-insurance/kit/log"
     9  )
    10  
    11  // Load loading env vars from env file
    12  func Load(env string, srcPath string, inject ...string) error {
    13  	gopath := os.Getenv("GOPATH")
    14  	path := fmt.Sprintf("%s/src/%s/.env", gopath, srcPath)
    15  	if env != "" {
    16  		path = fmt.Sprintf("%s.%s", path, env)
    17  	}
    18  	if _, err := os.Stat(path); os.IsNotExist(err) {
    19  		log.Print("No .env file found, falling back to actual env vars")
    20  		return nil
    21  	}
    22  
    23  	if err := godotenv.Load(path); err != nil {
    24  		return fmt.Errorf("Error loading env file")
    25  	}
    26  
    27  	return nil
    28  }