overflow_probes/service/ConfigService.go
crusader ca13dea9cd ing
2018-03-26 15:55:38 +09:00

77 lines
1.4 KiB
Go

package service
import (
"context"
"io/ioutil"
"path"
"reflect"
cda "git.loafle.net/commons_go/di/annotation"
cdr "git.loafle.net/commons_go/di/registry"
oocmci "git.loafle.net/overflow/overflow_commons_go/modules/commons/interfaces"
"git.loafle.net/overflow/overflow_probes/config"
)
func init() {
cdr.RegisterType(reflect.TypeOf((*ConfigService)(nil)))
}
type ConfigService struct {
cda.TypeAnnotation `annotation:"@overFlow:Service()"`
oocmci.Service
}
func (cs *ConfigService) Start() error {
return nil
}
func (cs *ConfigService) Stop(ctx context.Context) error {
return nil
}
func (cs *ConfigService) loadConfigAll() error {
configDirPath := config.ConfigDirPath()
files, err := ioutil.ReadDir(configDirPath)
if nil != err {
return err
}
for _, file := range files {
if file.IsDir() == true {
if err := cs.loadConfigDir(path.Join(configDirPath, file.Name())); nil != err {
return err
}
}
}
return nil
}
func (cs *ConfigService) loadConfigDir(dirPath string) error {
files, err := ioutil.ReadDir(dirPath)
if nil != err {
return err
}
for _, file := range files {
filePath := path.Join(dirPath, file.Name())
if file.IsDir() == true {
cs.loadConfigDir(filePath)
} else {
_, err := ioutil.ReadFile(filePath)
if nil != err {
return err
}
// var m = config_manager.Config{}
// json.Unmarshal(b, &m)
// c.configs[file.Name()] = &m
}
}
return nil
}