config package code refactor

This commit is contained in:
2023-10-24 16:18:07 +02:00
parent b512e996ad
commit 2f8b4cd1d6

View File

@@ -7,8 +7,6 @@ import (
"gopkg.in/yaml.v3"
)
var lock sync.Mutex
type Config struct {
Port int `yaml:"port"`
DownloadPath string `yaml:"downloadPath"`
@@ -20,6 +18,20 @@ type Config struct {
SessionFilePath string `yaml:"session_file_path"`
}
var (
instance *Config
instanceOnce sync.Once
)
func Instance() *Config {
if instance == nil {
instanceOnce.Do(func() {
instance = &Config{}
})
}
return instance
}
func (c *Config) LoadFile(filename string) error {
fd, err := os.Open(filename)
if err != nil {
@@ -32,16 +44,3 @@ func (c *Config) LoadFile(filename string) error {
return nil
}
var instance *Config
func Instance() *Config {
if instance == nil {
lock.Lock()
defer lock.Unlock()
if instance == nil {
instance = &Config{}
}
}
return instance
}