forked from tangled.org/core
this repo has no description
1package config 2 3import ( 4 "context" 5 "fmt" 6 7 "github.com/bluesky-social/indigo/atproto/syntax" 8 "github.com/sethvargo/go-envconfig" 9) 10 11type Repo struct { 12 ScanPath string `env:"SCAN_PATH, default=/home/git"` 13 Readme []string `env:"README"` 14 MainBranch string `env:"MAIN_BRANCH, default=main"` 15} 16 17type Server struct { 18 ListenAddr string `env:"LISTEN_ADDR, default=0.0.0.0:5555"` 19 InternalListenAddr string `env:"INTERNAL_LISTEN_ADDR, default=127.0.0.1:5444"` 20 Secret string `env:"SECRET, required"` 21 DBPath string `env:"DB_PATH, default=knotserver.db"` 22 Hostname string `env:"HOSTNAME, required"` 23 JetstreamEndpoint string `env:"JETSTREAM_ENDPOINT, default=wss://jetstream1.us-west.bsky.network/subscribe"` 24 LogDids bool `env:"LOG_DIDS, default=true"` 25 26 // This disables signature verification so use with caution. 27 Dev bool `env:"DEV, default=false"` 28} 29 30func (s Server) Did() syntax.DID { 31 return syntax.DID(fmt.Sprintf("did:web:%s", s.Hostname)) 32} 33 34type Config struct { 35 Repo Repo `env:",prefix=KNOT_REPO_"` 36 Server Server `env:",prefix=KNOT_SERVER_"` 37 AppViewEndpoint string `env:"APPVIEW_ENDPOINT, default=https://tangled.sh"` 38} 39 40func Load(ctx context.Context) (*Config, error) { 41 var cfg Config 42 err := envconfig.Process(ctx, &cfg) 43 if err != nil { 44 return nil, err 45 } 46 47 if cfg.Repo.Readme == nil { 48 cfg.Repo.Readme = []string{ 49 "README.md", "readme.md", 50 "README", 51 "readme", 52 "README.markdown", 53 "readme.markdown", 54 "README.txt", 55 "readme.txt", 56 "README.rst", 57 "readme.rst", 58 "README.org", 59 "readme.org", 60 "README.asciidoc", 61 "readme.asciidoc", 62 } 63 } 64 65 return &cfg, nil 66}