| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- package config
- import (
- "fmt"
- "gopkg.in/ini.v1"
- "os"
- "path/filepath"
- "strings"
- )
- type AgentConfig struct {
- ServerConfig `ini:"server"`
- LogConfig `ini:"log"`
- ResourceConfig `ini:"resource"`
- }
- type ServerConfig struct {
- ConfigServer string `ini:"ConfigServer"`
- DataServer string `ini:"DataServer"`
- License string `ini:"License"`
- }
- type ResourceConfig struct {
- ResourceMaxProcs int `ini:"resource.maxProcs"`
- }
- type LogConfig struct {
- LogLevel string `ini:"log.level"`
- LogPath string `ini:"log.path"`
- LogFileSize int `ini:"log.fileSize"`
- LogReserveDay int `ini:"log.reserveDay"`
- LogMaxReserveOneday int `ini:"log.maxReserveOneday"`
- }
- func getCurrentDirectory() (string, error) {
- dir, err := filepath.Abs(filepath.Dir(os.Args[0]))
- return strings.Replace(dir, "\\", "/", -1), err
- }
- func LoadConfig() (*AgentConfig, error) {
- agentDir, err := getCurrentDirectory()
- if err != nil {
- return nil, err
- }
- fmt.Printf("Agent current directory=%s\r\n", agentDir) // Agent current directory=/data/ilucky/cloudwise/euspace
- agentConfigPath := agentDir + "/" + "euspace.conf"
- agentConfigFile, err := ini.Load(agentConfigPath)
- if err != nil {
- return nil, err
- }
- //sections := configFile.Sections()
- //for _, section := range sections {
- // keys := section.Keys()
- // if "" == section.Name() {
- // for _, key := range keys {
- // keyName := key.Name()
- // keyValue := key.Value()
- // fmt.Printf("Key: %s, Value: %s\r\n", keyName, keyValue)
- // }
- // }
- //}
- agentConfig := new(AgentConfig) // new出来的对象需要使用*
- err = agentConfigFile.MapTo(agentConfig)
- if err != nil {
- return agentConfig, err
- }
- return agentConfig, nil
- }
|