41 lines
863 B
Go
41 lines
863 B
Go
|
package env
|
||
|
|
||
|
import (
|
||
|
"log"
|
||
|
"os"
|
||
|
"strings"
|
||
|
)
|
||
|
|
||
|
func Default(name, defaultValue string) string {
|
||
|
name = strings.TrimSpace(name)
|
||
|
defaultValue = strings.TrimSpace(defaultValue)
|
||
|
if v := strings.TrimSpace(os.Getenv(name)); v != "" {
|
||
|
log.Println("# ", name, "=", v)
|
||
|
return v
|
||
|
}
|
||
|
log.Println("# ", name, "=", defaultValue, "(default)")
|
||
|
return defaultValue
|
||
|
}
|
||
|
|
||
|
type secret string
|
||
|
|
||
|
func (s secret) String() string {
|
||
|
if s == "" {
|
||
|
return "(nil)"
|
||
|
}
|
||
|
return "***"
|
||
|
}
|
||
|
func (s secret) Secret() string {
|
||
|
return string(s)
|
||
|
}
|
||
|
func Secret(name, defaultValue string) secret {
|
||
|
name = strings.TrimSpace(name)
|
||
|
defaultValue = strings.TrimSpace(defaultValue)
|
||
|
if v := strings.TrimSpace(os.Getenv(name)); v != "" {
|
||
|
log.Println("# ", name, "=", secret(v))
|
||
|
return secret(v)
|
||
|
}
|
||
|
log.Println("# ", name, "=", secret(defaultValue), "(default)")
|
||
|
return secret(defaultValue)
|
||
|
}
|