Skip to content

Latest commit

 

History

History
60 lines (43 loc) · 712 Bytes

README.md

File metadata and controls

60 lines (43 loc) · 712 Bytes

Example

main.go

package main

import (
	"log"

	"github.com/l-vitaly/goenv/example/config"
)

func main() {
	cfg, err := config.Parse()
	if err != nil {
		log.Fatalln(err)
	}

	log.Println(cfg.DBConn)
}

config/config.go

package config

import (
	"fmt"

	"github.com/l-vitaly/goenv"
)

const errPattern = "could not set %s"

// env name consts
const (
	DBConnEnvName = "DB_CONN"
)

// Config config.
type Config struct {
	DBConn string
}

// Parse env config vars.
func Parse() (*Config, error) {
	cfg := &Config{}

	goenv.StringVar(&cfg.DBConn, DBConnEnvName, "")
	goenv.Parse()

	if cfg.DBConn == "" {
		return nil, fmt.Errorf(errPattern, DBConnEnvName)
	}

	return cfg, nil
}