forked from tangled.org/core
Monorepo for Tangled — https://tangled.org
at test-ci 1.0 kB view raw
1package config 2 3import ( 4 "context" 5 6 "github.com/sethvargo/go-envconfig" 7) 8 9type Server struct { 10 ListenAddr string `env:"LISTEN_ADDR, default=0.0.0.0:6555"` 11 DBPath string `env:"DB_PATH, default=spindle.db"` 12 Hostname string `env:"HOSTNAME, required"` 13 JetstreamEndpoint string `env:"JETSTREAM_ENDPOINT, default=wss://jetstream1.us-west.bsky.network/subscribe"` 14 Dev bool `env:"DEV, default=false"` 15 Owner string `env:"OWNER, required"` 16} 17 18type Pipelines struct { 19 Nixery string `env:"NIXERY, default=nixery.tangled.sh"` 20 WorkflowTimeout string `env:"WORKFLOW_TIMEOUT, default=5m"` 21 LogDir string `env:"LOG_DIR, default=/var/log/spindle"` 22} 23 24type Config struct { 25 Server Server `env:",prefix=SPINDLE_SERVER_"` 26 Pipelines Pipelines `env:",prefix=SPINDLE_PIPELINES_"` 27} 28 29func Load(ctx context.Context) (*Config, error) { 30 var cfg Config 31 err := envconfig.Process(ctx, &cfg) 32 if err != nil { 33 return nil, err 34 } 35 36 return &cfg, nil 37}