modulepackage
0.0.0-20190910160045-e11b6e8737eb
Repository: https://github.com/goanywhere/env.git
Documentation: pkg.go.dev
# README
env
Ease of Accessing Environment Varaibles in Golang
Installation
$ go get -v github.com/goanywhere/env
Usage
PORT=9394
SECRET_KEY=YOURSECRETKEY
You can double/single quote string values:
PRIVATE_KEY="-----BEGIN RSA PRIVATE KEY-----HkVN9…-----END DSA PRIVATE KEY-----"
You can use export
in front of each line just like your shell settings, so that you can source
the file in your terminal directly:
export [email protected]
export PASSWORD=AccountPasswordGoesHere
Export these values, you can then access them using env now.
package main
import (
"github.com/goanywhere/env"
)
func main() {
env.Int("PORT") // 9394
env.String("SECRET_KEY") // YOURSECERTKEY
.......
}
env
also supports custom struct for you to access the reflected values.
package main
import (
"fmt"
"github.com/goanywhere/env"
)
type Spec struct {
App string
SecretKey string `env:"SECRET_KEY"`
}
func main() {
var spec Spec
env.Set("App", "myapplication")
env.Set("SECRET_KEY", "wGv7ELIx8P8qsUit9OuWw2zwPEF0nXtvjIKZQOioAVuI5GnHSwBAeWZ6l4-SpIPT")
env.Map(&spec)
fmt.Printf("App: %s", spec.App) // output: "App: myapplication"
fmt.Printf("Secret: %s", spec.SecretKey) // output: "Secret: wGv7ELIx8P8qsUit9OuWw2zwPEF0nXtvjIKZQOioAVuI5GnHSwBAeWZ6l4-SpIPT"
}
We also includes dotenv supports, simply add the application settings to file .env
right under the root of your project:
test1 = value1
test2 = 'value2'
test3 = "value3"
export test4=value4
package main
import (
"fmt"
"github.com/goanywhere/env"
)
func main() {
// Load '.env' from current working directory.
env.Load()
fmt.Printf("<test1: %s>", env.String("test1")) // output: "value1"
fmt.Printf("<test2: %s>", env.String("test2")) // output: "value2"
}
NOTES
Sensitive settings should ONLY be accessible on the machines that need access to them. NEVER commit them to a repository (even a private one) that is not needed by every development machine and server.
# Functions
Bool retrieves boolean value from the environment.
Float retrieves float (64) value from the environment.
Get retrieves the string value of the environment variable named by the key.
Int retrieves the integer values separated by comma from the environment.
Int retrieves the 64-bit integer values separated by comma from the environment.
Load parses & set the values in the given files into os environment.
Map fetches the key/value pair from os.Environ into the given spec.
Set stores the value of the environment variable named by the key.
String retrieves the string value from environment named by the key.
Strings retrieves the string values separated by comma from the environment.
Uint retrieves the unsigned integer values separated by comma from the environment.
Uint64 retrieves the 64-bit unsigned integer values separated by comma from the environment.