Parent directory

config.go

860 bytes
 1package main
 2
 3import (
 4	"fmt"
 5	"os"
 6)
 7
 8type config struct {
 9	registry        string
10	buildkitAddress string
11	databasePath    string
12}
13
14func loadConfig() (config, error) {
15	registry, err := requiredEnvironment("REGISTRY")
16	if err != nil {
17		return config{}, err
18	}
19
20	buildkitAddress, err := requiredEnvironment("BUILDKIT_ADDR")
21	if err != nil {
22		return config{}, err
23	}
24
25	return config{
26		registry:        registry,
27		buildkitAddress: buildkitAddress,
28		databasePath:    environmentOrDefault("DATABASE_PATH", "/work/builds.db"),
29	}, nil
30}
31
32func requiredEnvironment(name string) (string, error) {
33	value := os.Getenv(name)
34	if value == "" {
35		return "", fmt.Errorf("%s is required", name)
36	}
37	return value, nil
38}
39
40func environmentOrDefault(name, defaultValue string) string {
41	if value := os.Getenv(name); value != "" {
42		return value
43	}
44	return defaultValue
45}