all repos — legit @ 1872ca726ab9b0105481ba2404b01e7aeb43bbee

web frontend for git, written in go

config/config.go (view raw)

 1package config
 2
 3import (
 4	"fmt"
 5	"os"
 6
 7	"gopkg.in/yaml.v3"
 8)
 9
10type Config struct {
11	Repo struct {
12		ScanPath   string   `yaml:"scanPath"`
13		Readme     []string `yaml:"readme"`
14		MainBranch []string `yaml:"mainBranch"`
15	} `yaml:"repo"`
16	Template struct {
17		Dir string `yaml:"dir"`
18	} `yaml:"template"`
19	Meta struct {
20		Title       string `yaml:"title"`
21		Description string `yaml:"description"`
22	} `yaml:"meta"`
23	Server struct {
24		Host string `yaml:"host"`
25		Port int    `yaml:"port"`
26	} `yaml:"server"`
27}
28
29func Read(f string) (*Config, error) {
30	b, err := os.ReadFile(f)
31	if err != nil {
32		return nil, fmt.Errorf("reading config: %w", err)
33	}
34
35	c := Config{}
36	if err := yaml.Unmarshal(b, &c); err != nil {
37		return nil, fmt.Errorf("parsing config: %w", err)
38	}
39
40	return &c, nil
41}