Documentation
¶
Overview ¶
Package envutil provide some commonly ENV util functions.
Index ¶
- Constants
- Variables
- func DotenvLoad(fns ...func(cfg *Dotenv)) error
- func EnvMap() map[string]string
- func EnvPaths() []string
- func Environ() map[string]string
- func GetBool(name string, def ...bool) bool
- func GetInt(name string, def ...int) int
- func GetMulti(names ...string) map[string]string
- func GetOne(names []string, defVal ...string) string
- func Getenv(name string, def ...string) string
- func HasEnv(name string) bool
- func HasShellEnv(shell string) bool
- func IsConsole(out io.Writer) bool
- func IsGithubActions() bool
- func IsLinux() bool
- func IsMSys() bool
- func IsMac() bool
- func IsSupport256Color() bool
- func IsSupportColor() bool
- func IsSupportTrueColor() bool
- func IsTerminal(fd uintptr) bool
- func IsWin() bool
- func IsWindows() bool
- func LoadEnvFiles(baseDir string, files ...string) error
- func LoadString(line string) bool
- func LoadText(text string)
- func LoadedEnvFiles() []string
- func MustGet(name string) string
- func OnExist(name string, fn func(val string)) bool
- func ParseEnvValue(val string) string
- func ParseOrErr(val string) (string, error)
- func ParseValue(val string) string
- func SearchEnv(keywords string, matchValue bool) map[string]string
- func SearchEnvKeys(keywords string) map[string]string
- func SetEnvMap(mp map[string]string)
- func SetEnvs(kvPairs ...string)
- func SplitLineToKv(line string) (string, string)
- func SplitText2map(text string) map[string]string
- func StdIsTerminal() bool
- func UnsetEnvs(keys ...string)
- func VarParse(val string) string
- func VarReplace(s string) string
- type Dotenv
Constants ¶
const DefaultEnvFile = ".env"
DefaultEnvFile default file name
Variables ¶
var ValueGetter = os.Getenv
ValueGetter Env value provider func.
TIPS: you can custom provide data.
Functions ¶
func DotenvLoad ¶ added in v0.7.3
DotenvLoad load dotenv file and parse to ENV
func EnvMap ¶ added in v0.6.7
EnvMap like os.Environ, but will returns key-value map[string]string data.
func Environ ¶ added in v0.3.13
Environ like os.Environ, but will returns key-value map[string]string data.
func IsSupportColor ¶
func IsSupportColor() bool
IsSupportColor check current console is support color.
Supported:
linux, mac, or Windows's ConEmu, Cmder, putty, git-bash.exe
Not support:
windows cmd.exe, powerShell.exe
func IsSupportTrueColor ¶ added in v0.2.5
func IsSupportTrueColor() bool
IsSupportTrueColor render. IsSupportRGBColor
func IsTerminal ¶ added in v0.3.10
IsTerminal isatty check
Usage:
envutil.IsTerminal(os.Stdout.Fd())
func LoadEnvFiles ¶ added in v0.7.3
LoadEnvFiles load dotenv files and parse to ENV
func LoadString ¶ added in v0.7.0
LoadString set line to ENV. e.g.: "KEY=VALUE"
func LoadText ¶ added in v0.7.0
func LoadText(text string)
LoadText parse multiline text to ENV. Can use to load .env file contents.
Usage:
envutil.LoadText(fsutil.ReadFile(".env"))
func LoadedEnvFiles ¶ added in v0.7.3
func LoadedEnvFiles() []string
LoadedEnvFiles get loaded dotenv files
func MustGet ¶ added in v0.7.0
MustGet get ENV value by key name, if not exists or empty, will panic
func OnExist ¶ added in v0.7.0
OnExist check ENV value by key name, will call fn on value exists(not-empty)
func ParseEnvValue ¶ added in v0.1.7
ParseEnvValue alias of the ParseValue
func ParseOrErr ¶ added in v0.6.13
ParseOrErr parse ENV var value from input string, support default value.
Diff with the ParseValue, this support return error.
With error format: ${VAR_NAME | ?error}
func ParseValue ¶ added in v0.5.2
ParseValue parse ENV var value from input string, support default value.
Format:
${var_name} Only var name
${var_name | default} With default value
Usage:
envutil.ParseValue("${ APP_NAME }")
envutil.ParseValue("${ APP_ENV | dev }")
func SearchEnvKeys ¶ added in v0.6.2
SearchEnvKeys values by given keywords
func SetEnvs ¶ added in v0.6.0
func SetEnvs(kvPairs ...string)
SetEnvs set multi k-v ENV pairs to os
func SplitLineToKv ¶ added in v0.7.0
SplitLineToKv parse ENV line to k-v. eg: 'DEBUG=true' => ['DEBUG', 'true']
func SplitText2map ¶ added in v0.7.0
SplitText2map parse ENV text to map. Can use to parse .env file contents.
func VarReplace ¶ added in v0.3.11
VarReplace replaces ${var} or $var in the string according to the values.
is alias of the os.ExpandEnv()
Types ¶
type Dotenv ¶ added in v0.7.3
type Dotenv struct {
// Files dot env file paths, allow multi files.
// - filename support simple glob pattern. eg: ".env.*"
//
// default: [".env"]
Files []string
// BaseDir base dir for join files path
//
// default is workdir
BaseDir string
// UpperKey change key to upper on set ENV. default: true
UpperKey bool
// IgnoreNotExist only load exists.
//
// - default: false - will return error if not exists
IgnoreNotExist bool
// LoadFirstExist only load first exists env file on Files
LoadFirstExist bool
// contains filtered or unexported fields
}
Dotenv load and parse dotenv files
func (*Dotenv) LoadAndInit ¶ added in v0.7.3
LoadAndInit load dotenv files and parse to os.Environ
func (*Dotenv) LoadFiles ¶ added in v0.7.3
LoadFiles append load dotenv files
- filename support simple glob pattern. eg: ".env.*"
func (*Dotenv) LoadedData ¶ added in v0.7.3
LoadedData get loaded dotenv data map
func (*Dotenv) LoadedFiles ¶ added in v0.7.3
LoadedFiles get loaded dotenv files