-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathstorage.go
More file actions
61 lines (52 loc) · 1.4 KB
/
storage.go
File metadata and controls
61 lines (52 loc) · 1.4 KB
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
package gitreceive
import (
"fmt"
"os"
)
const (
minioHostEnvVar = "DEIS_MINIO_SERVICE_HOST"
minioPortEnvVar = "DEIS_MINIO_SERVICE_PORT"
outsideStorageHostEnvVar = "DEIS_OUTSIDE_STORAGE_HOST"
outsideStoragePortEnvVar = "DEIS_OUTSIDE_STORAGE_PORT"
)
var (
errNoStorageConfig = fmt.Errorf(
"no storage config variables found (%s:%s or %s:%s)",
minioHostEnvVar,
minioPortEnvVar,
outsideStorageHostEnvVar,
outsideStoragePortEnvVar,
)
)
type storageConfig interface {
schema() string
host() string
port() string
}
func getStorageConfig() (storageConfig, error) {
mHost := os.Getenv(minioHostEnvVar)
mPort := os.Getenv(minioPortEnvVar)
oHost := os.Getenv(outsideStorageHostEnvVar)
oPort := os.Getenv(outsideStoragePortEnvVar)
if mHost != "" && mPort != "" {
return minioConfig{hst: mHost, prt: mPort}, nil
} else if oHost != "" && oPort != "" {
return outsideConfig{hst: oHost, prt: oPort}, nil
} else {
return nil, errNoStorageConfig
}
}
type minioConfig struct {
hst string
prt string
}
func (m minioConfig) schema() string { return "http" }
func (m minioConfig) host() string { return m.hst }
func (m minioConfig) port() string { return m.prt }
type outsideConfig struct {
hst string
prt string
}
func (o outsideConfig) schema() string { return "https" }
func (o outsideConfig) host() string { return o.hst }
func (o outsideConfig) port() string { return o.prt }