config package code refactor
This commit is contained in:
@@ -7,8 +7,6 @@ import (
|
|||||||
"gopkg.in/yaml.v3"
|
"gopkg.in/yaml.v3"
|
||||||
)
|
)
|
||||||
|
|
||||||
var lock sync.Mutex
|
|
||||||
|
|
||||||
type Config struct {
|
type Config struct {
|
||||||
Port int `yaml:"port"`
|
Port int `yaml:"port"`
|
||||||
DownloadPath string `yaml:"downloadPath"`
|
DownloadPath string `yaml:"downloadPath"`
|
||||||
@@ -20,6 +18,20 @@ type Config struct {
|
|||||||
SessionFilePath string `yaml:"session_file_path"`
|
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 {
|
func (c *Config) LoadFile(filename string) error {
|
||||||
fd, err := os.Open(filename)
|
fd, err := os.Open(filename)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -32,16 +44,3 @@ func (c *Config) LoadFile(filename string) error {
|
|||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
var instance *Config
|
|
||||||
|
|
||||||
func Instance() *Config {
|
|
||||||
if instance == nil {
|
|
||||||
lock.Lock()
|
|
||||||
defer lock.Unlock()
|
|
||||||
if instance == nil {
|
|
||||||
instance = &Config{}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return instance
|
|
||||||
}
|
|
||||||
|
|||||||
Reference in New Issue
Block a user