This repository has been archived on 2025-07-20. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
hn84/ui/internal/config/config.go
2023-11-05 09:15:01 +00:00

41 lines
665 B
Go

package config
import (
"git.tdpain.net/pkg/cfger"
"log/slog"
"os"
"sync"
)
type Config struct {
DatabaseName string
CrawlDataDir string
}
var (
conf *Config
loadOnce = new(sync.Once)
)
func Get() *Config {
var outerErr error
loadOnce.Do(func() {
cl := cfger.New()
if err := cl.Load("config.yml"); err != nil {
outerErr = err
return
}
conf = &Config{
DatabaseName: cl.WithDefault("index.databaseName", "index.db").AsString(),
CrawlDataDir: cl.WithDefault("dataDir", "crawlData").AsString(),
}
})
if outerErr != nil {
slog.Error("fatal error when loading configuration", "err", outerErr)
os.Exit(1)
}
return conf
}