A vibe coded tangled fork which supports pijul.
at cdcae4dfed24485726686bc8fc5131b818ae56ff 34 lines 1.3 kB view raw
1package config 2 3import ( 4 "context" 5 "time" 6 7 "github.com/sethvargo/go-envconfig" 8) 9 10type Config struct { 11 TapUrl string `env:"MIRROR_TAP_URL, default=http://localhost:2480"` 12 DbUrl string `env:"MIRROR_DB_URL, required"` 13 KnotUseSSL bool `env:"MIRROR_KNOT_USE_SSL, default=false"` // use SSL for Knot when not scheme is not specified 14 KnotSSRF bool `env:"MIRROR_KNOT_SSRF, default=false"` 15 GitRepoBasePath string `env:"MIRROR_GIT_BASEPATH, default=repos"` 16 GitRepoFetchTimeout time.Duration `env:"MIRROR_GIT_FETCH_TIMEOUT, default=600s"` 17 ResyncParallelism int `env:"MIRROR_RESYNC_PARALLELISM, default=5"` 18 Slurper SlurperConfig `env:",prefix=MIRROR_SLURPER_"` 19 MetricsListen string `env:"MIRROR_METRICS_LISTEN, default=127.0.0.1:7100"` 20 AdminListen string `env:"MIRROR_ADMIN_LISTEN, default=127.0.0.1:7200"` 21} 22 23type SlurperConfig struct { 24 PersistCursorPeriod time.Duration `env:"PERSIST_CURSOR_PERIOD, default=4s"` 25 ConcurrencyPerHost int `env:"CONCURRENCY, default=4"` 26} 27 28func Load(ctx context.Context) (*Config, error) { 29 var cfg Config 30 if err := envconfig.Process(ctx, &cfg); err != nil { 31 return nil, err 32 } 33 return &cfg, nil 34}