/
objects.go
39 lines (35 loc) · 954 Bytes
/
objects.go
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
package config
import (
"fmt"
"github.com/spf13/viper"
)
type Objects struct {
Bucket string //`mapstructure:"MINIO_BUCKET"`
Domain string //`mapstructure:"MINIO_DOMAIN"`
Prefix []string
PrefixOff []string
}
var ObjectTemplate = map[string]interface{}{
"objects": map[string]string{
"bucket": "gleaner",
"domain": "us-east-1",
"endpoint": "http://localhost/blazegraph/namespace/nabu/sparql",
"prefix": "",
"prefixoff": "",
},
}
func ReadS3Config(viperSubtree *viper.Viper) (Objects, error) {
var objects Objects
for key, value := range sparqlTemplate {
viperSubtree.SetDefault(key, value)
}
viperSubtree.BindEnv("bucket", "MINIO_BUCKET")
viperSubtree.BindEnv("domain", "S3_DOMAIN")
viperSubtree.AutomaticEnv()
// config already read. substree passed
err := viperSubtree.Unmarshal(&objects)
if err != nil {
panic(fmt.Errorf("error when parsing servers s3 config: %v", err))
}
return objects, err
}