-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgofig.go
More file actions
40 lines (33 loc) · 748 Bytes
/
gofig.go
File metadata and controls
40 lines (33 loc) · 748 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
package gofig
import (
"fmt"
"syscall"
)
func Raw(name string) (value string, found bool) {
value, found = syscall.Getenv(name)
return
}
func String(name string) (value string, err error) {
value, found := Raw(name)
if found != true {
err = fmt.Errorf("Configuration parameter %s not provided", name)
}
return
}
func StringDefault(name, defaultValue string) (value string) {
value, err := String(name)
if err != nil {
value = defaultValue
}
return
}
func StringVar(target *string, name string) (err error) {
*target, err = String(name)
return
}
func StringVarDefault(target *string, name, defaultValue string) {
*target = StringDefault(name, defaultValue)
}
func Int(name string) (value int, err error) {
return 1, nil
}